mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 06:02:05 +00:00
s390/qeth: fix cancelling of TX timer on dev_close()
With the introduction of TX coalescing, .ndo_start_xmit now potentially
starts the TX completion timer. So only kill the timer _after_ TX has
been disabled.
Fixes: ee1e52d1e4
("s390/qeth: add TX IRQ coalescing support for IQD devices")
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d975cb7ea9
commit
c649c41d5d
@ -6717,17 +6717,17 @@ int qeth_stop(struct net_device *dev)
|
||||
unsigned int i;
|
||||
|
||||
/* Quiesce the NAPI instances: */
|
||||
qeth_for_each_output_queue(card, queue, i) {
|
||||
qeth_for_each_output_queue(card, queue, i)
|
||||
napi_disable(&queue->napi);
|
||||
del_timer_sync(&queue->timer);
|
||||
}
|
||||
|
||||
/* Stop .ndo_start_xmit, might still access queue->napi. */
|
||||
netif_tx_disable(dev);
|
||||
|
||||
/* Queues may get re-allocated, so remove the NAPIs here. */
|
||||
qeth_for_each_output_queue(card, queue, i)
|
||||
qeth_for_each_output_queue(card, queue, i) {
|
||||
del_timer_sync(&queue->timer);
|
||||
/* Queues may get re-allocated, so remove the NAPIs. */
|
||||
netif_napi_del(&queue->napi);
|
||||
}
|
||||
} else {
|
||||
netif_tx_disable(dev);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user