diff options
-rw-r--r-- | drivers/net/e1000e/ethtool.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c index a70999b8c6cf..0364b91488af 100644 --- a/drivers/net/e1000e/ethtool.c +++ b/drivers/net/e1000e/ethtool.c | |||
@@ -335,10 +335,18 @@ static int e1000_set_pauseparam(struct net_device *netdev, | |||
335 | 335 | ||
336 | hw->fc.current_mode = hw->fc.requested_mode; | 336 | hw->fc.current_mode = hw->fc.requested_mode; |
337 | 337 | ||
338 | retval = ((hw->phy.media_type == e1000_media_type_fiber) ? | 338 | if (hw->phy.media_type == e1000_media_type_fiber) { |
339 | hw->mac.ops.setup_link(hw) : e1000e_force_mac_fc(hw)); | 339 | retval = hw->mac.ops.setup_link(hw); |
340 | /* implicit goto out */ | ||
341 | } else { | ||
342 | retval = e1000e_force_mac_fc(hw); | ||
343 | if (retval) | ||
344 | goto out; | ||
345 | e1000e_set_fc_watermarks(hw); | ||
346 | } | ||
340 | } | 347 | } |
341 | 348 | ||
349 | out: | ||
342 | clear_bit(__E1000_RESETTING, &adapter->state); | 350 | clear_bit(__E1000_RESETTING, &adapter->state); |
343 | return retval; | 351 | return retval; |
344 | } | 352 | } |