ice: Fix dead device link issue with flow control
Setting Rx or Tx pause parameter currently results in link loss on the interface, requiring the platform/host to be cold power cycled. Fix it. Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@intel.com> Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
committed by
Jeff Kirsher
parent
afd9d4ab58
commit
0f5d4c21a5
@@ -1517,10 +1517,15 @@ ice_set_pauseparam(struct net_device *netdev, struct ethtool_pauseparam *pause)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!test_bit(__ICE_DOWN, pf->state)) {
|
if (!test_bit(__ICE_DOWN, pf->state)) {
|
||||||
/* Give it a little more time to try to come back */
|
/* Give it a little more time to try to come back. If still
|
||||||
|
* down, restart autoneg link or reinitialize the interface.
|
||||||
|
*/
|
||||||
msleep(75);
|
msleep(75);
|
||||||
if (!test_bit(__ICE_DOWN, pf->state))
|
if (!test_bit(__ICE_DOWN, pf->state))
|
||||||
return ice_nway_reset(netdev);
|
return ice_nway_reset(netdev);
|
||||||
|
|
||||||
|
ice_down(vsi);
|
||||||
|
ice_up(vsi);
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
|
|||||||
Reference in New Issue
Block a user