diff options
| -rw-r--r-- | drivers/net/ixgbe/ixgbe_ethtool.c | 26 |
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 | ||
| 445 | static 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 | |||
| 445 | static u32 ixgbe_get_rx_csum(struct net_device *netdev) | 455 | static 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 | } |
