diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_ethtool.c')
-rw-r--r-- | drivers/net/ethernet/intel/ice/ice_ethtool.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c b/drivers/net/ethernet/intel/ice/ice_ethtool.c index 96923580f2a6..648acdb4c644 100644 --- a/drivers/net/ethernet/intel/ice/ice_ethtool.c +++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c | |||
@@ -1517,10 +1517,15 @@ ice_set_pauseparam(struct net_device *netdev, struct ethtool_pauseparam *pause) | |||
1517 | } | 1517 | } |
1518 | 1518 | ||
1519 | if (!test_bit(__ICE_DOWN, pf->state)) { | 1519 | if (!test_bit(__ICE_DOWN, pf->state)) { |
1520 | /* Give it a little more time to try to come back */ | 1520 | /* Give it a little more time to try to come back. If still |
1521 | * down, restart autoneg link or reinitialize the interface. | ||
1522 | */ | ||
1521 | msleep(75); | 1523 | msleep(75); |
1522 | if (!test_bit(__ICE_DOWN, pf->state)) | 1524 | if (!test_bit(__ICE_DOWN, pf->state)) |
1523 | return ice_nway_reset(netdev); | 1525 | return ice_nway_reset(netdev); |
1526 | |||
1527 | ice_down(vsi); | ||
1528 | ice_up(vsi); | ||
1524 | } | 1529 | } |
1525 | 1530 | ||
1526 | return err; | 1531 | return err; |