diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/e1000/e1000.h | 1 | ||||
-rw-r--r-- | drivers/net/e1000/e1000_ethtool.c | 1 | ||||
-rw-r--r-- | drivers/net/e1000/e1000_main.c | 5 |
3 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/e1000/e1000.h b/drivers/net/e1000/e1000.h index 3f0be02e85e2..896ea8a72386 100644 --- a/drivers/net/e1000/e1000.h +++ b/drivers/net/e1000/e1000.h | |||
@@ -265,6 +265,7 @@ struct e1000_adapter { | |||
265 | 265 | ||
266 | /* TX */ | 266 | /* TX */ |
267 | struct e1000_tx_ring *tx_ring; /* One per active queue */ | 267 | struct e1000_tx_ring *tx_ring; /* One per active queue */ |
268 | unsigned int restart_queue; | ||
268 | unsigned long tx_queue_len; | 269 | unsigned long tx_queue_len; |
269 | uint32_t txd_cmd; | 270 | uint32_t txd_cmd; |
270 | uint32_t tx_int_delay; | 271 | uint32_t tx_int_delay; |
diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c index dbac71ba71b1..da459f7177c6 100644 --- a/drivers/net/e1000/e1000_ethtool.c +++ b/drivers/net/e1000/e1000_ethtool.c | |||
@@ -85,6 +85,7 @@ static const struct e1000_stats e1000_gstrings_stats[] = { | |||
85 | { "tx_single_coll_ok", E1000_STAT(stats.scc) }, | 85 | { "tx_single_coll_ok", E1000_STAT(stats.scc) }, |
86 | { "tx_multi_coll_ok", E1000_STAT(stats.mcc) }, | 86 | { "tx_multi_coll_ok", E1000_STAT(stats.mcc) }, |
87 | { "tx_timeout_count", E1000_STAT(tx_timeout_count) }, | 87 | { "tx_timeout_count", E1000_STAT(tx_timeout_count) }, |
88 | { "tx_restart_queue", E1000_STAT(restart_queue) }, | ||
88 | { "rx_long_length_errors", E1000_STAT(stats.roc) }, | 89 | { "rx_long_length_errors", E1000_STAT(stats.roc) }, |
89 | { "rx_short_length_errors", E1000_STAT(stats.ruc) }, | 90 | { "rx_short_length_errors", E1000_STAT(stats.ruc) }, |
90 | { "rx_align_errors", E1000_STAT(stats.algnerrc) }, | 91 | { "rx_align_errors", E1000_STAT(stats.algnerrc) }, |
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 96e44a825443..705e654c368a 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c | |||
@@ -2974,6 +2974,7 @@ static int __e1000_maybe_stop_tx(struct net_device *netdev, int size) | |||
2974 | 2974 | ||
2975 | /* A reprieve! */ | 2975 | /* A reprieve! */ |
2976 | netif_start_queue(netdev); | 2976 | netif_start_queue(netdev); |
2977 | ++adapter->restart_queue; | ||
2977 | return 0; | 2978 | return 0; |
2978 | } | 2979 | } |
2979 | 2980 | ||
@@ -3654,8 +3655,10 @@ e1000_clean_tx_irq(struct e1000_adapter *adapter, | |||
3654 | * sees the new next_to_clean. | 3655 | * sees the new next_to_clean. |
3655 | */ | 3656 | */ |
3656 | smp_mb(); | 3657 | smp_mb(); |
3657 | if (netif_queue_stopped(netdev)) | 3658 | if (netif_queue_stopped(netdev)) { |
3658 | netif_wake_queue(netdev); | 3659 | netif_wake_queue(netdev); |
3660 | ++adapter->restart_queue; | ||
3661 | } | ||
3659 | } | 3662 | } |
3660 | 3663 | ||
3661 | if (adapter->detect_tx_hung) { | 3664 | if (adapter->detect_tx_hung) { |