diff options
author | Julian Wiedmann <jwi@linux.ibm.com> | 2020-03-10 18:38:03 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-03-10 16:07:49 -0700 |
commit | 0e635c2a8713e3e013b4adcb7cb7e28a048b7c42 (patch) | |
tree | 22b8adc693061b08a2fc6c5c4b57641849e7df70 /drivers/s390/net/qeth_l3_main.c | |
parent | s390/qeth: handle error when backing RX buffer (diff) | |
download | linux-dev-0e635c2a8713e3e013b4adcb7cb7e28a048b7c42.tar.xz linux-dev-0e635c2a8713e3e013b4adcb7cb7e28a048b7c42.zip |
s390/qeth: cancel RX reclaim work earlier
When qeth's napi poll code fails to refill an entirely empty RX ring, it
kicks off buffer_reclaim_work to try again later.
Make sure that this worker is cancelled when setting the qeth device
offline. Otherwise a RX refill action can unexpectedly end up running
concurrently to bigger re-configurations (eg. resizing the buffer pool),
without any locking.
Fixes: b333293058aa ("qeth: add support for af_iucv HiperSockets transport")
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r-- | drivers/s390/net/qeth_l3_main.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c index 317d56647a4a..82f800d1d7b3 100644 --- a/drivers/s390/net/qeth_l3_main.c +++ b/drivers/s390/net/qeth_l3_main.c @@ -1178,6 +1178,7 @@ static void qeth_l3_stop_card(struct qeth_card *card) qeth_l3_clear_ip_htable(card, 1); qeth_clear_ipacmd_list(card); qeth_drain_output_queues(card); + cancel_delayed_work_sync(&card->buffer_reclaim_work); card->state = CARD_STATE_DOWN; } |