ice: only drop link once when setting pauseparams
Currently, the ice driver is setting a PHY configuration, which causes a link drop, and then additionally it calls for a nway_reset, which restarts auto-negotiation on the link, which also causes a link drop. These two link events in such close timing is causing the FW to not be able to generate a link interrupt for the driver to respond to. Remove the unnecessary auto-negotiation restart from the set pauseparams flow. Also remove error path that would have performed an ice_down/ice_up as that is also unnecessary. Signed-off-by: Dave Ertman <david.m.ertman@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
891540024b
commit
46a316500e
@@ -2977,18 +2977,6 @@ ice_set_pauseparam(struct net_device *netdev, struct ethtool_pauseparam *pause)
|
|||||||
err = -EAGAIN;
|
err = -EAGAIN;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!test_bit(__ICE_DOWN, pf->state)) {
|
|
||||||
/* Give it a little more time to try to come back. If still
|
|
||||||
* down, restart autoneg link or reinitialize the interface.
|
|
||||||
*/
|
|
||||||
msleep(75);
|
|
||||||
if (!test_bit(__ICE_DOWN, pf->state))
|
|
||||||
return ice_nway_reset(netdev);
|
|
||||||
|
|
||||||
ice_down(vsi);
|
|
||||||
ice_up(vsi);
|
|
||||||
}
|
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user