aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ixgbe/ixgbe_ethtool.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/net/ixgbe/ixgbe_ethtool.c b/drivers/net/ixgbe/ixgbe_ethtool.c
index 405c5ba1d561..bb8441e3990c 100644
--- a/drivers/net/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ixgbe/ixgbe_ethtool.c
@@ -442,6 +442,16 @@ static int ixgbe_set_pauseparam(struct net_device *netdev,
442 return 0; 442 return 0;
443} 443}
444 444
445static void ixgbe_do_reset(struct net_device *netdev)
446{
447 struct ixgbe_adapter *adapter = netdev_priv(netdev);
448
449 if (netif_running(netdev))
450 ixgbe_reinit_locked(adapter);
451 else
452 ixgbe_reset(adapter);
453}
454
445static u32 ixgbe_get_rx_csum(struct net_device *netdev) 455static u32 ixgbe_get_rx_csum(struct net_device *netdev)
446{ 456{
447 struct ixgbe_adapter *adapter = netdev_priv(netdev); 457 struct ixgbe_adapter *adapter = netdev_priv(netdev);
@@ -2249,12 +2259,8 @@ static int ixgbe_set_coalesce(struct net_device *netdev,
2249 * correctly w.r.t stopping tx, and changing TXDCTL.WTHRESH settings 2259 * correctly w.r.t stopping tx, and changing TXDCTL.WTHRESH settings
2250 * also locks in RSC enable/disable which requires reset 2260 * also locks in RSC enable/disable which requires reset
2251 */ 2261 */
2252 if (need_reset) { 2262 if (need_reset)
2253 if (netif_running(netdev)) 2263 ixgbe_do_reset(netdev);
2254 ixgbe_reinit_locked(adapter);
2255 else
2256 ixgbe_reset(adapter);
2257 }
2258 2264
2259 return 0; 2265 return 0;
2260} 2266}
@@ -2328,12 +2334,8 @@ static int ixgbe_set_flags(struct net_device *netdev, u32 data)
2328 need_reset = true; 2334 need_reset = true;
2329 } 2335 }
2330 2336
2331 if (need_reset) { 2337 if (need_reset)
2332 if (netif_running(netdev)) 2338 ixgbe_do_reset(netdev);
2333 ixgbe_reinit_locked(adapter);
2334 else
2335 ixgbe_reset(adapter);
2336 }
2337 2339
2338 return 0; 2340 return 0;
2339} 2341}