diff options
author | Julian Wiedmann <jwi@linux.ibm.com> | 2020-09-10 12:05:18 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-09-10 23:31:10 +0300 |
commit | 5bf490e6807bf56f49b5991b4be817407dd32656 (patch) | |
tree | bbe6a558708ae9d9550f4b2ebba2b02c1c9f5713 /drivers/s390/net/qeth_l3_main.c | |
parent | 83896b0bd8223ac33bcc609bcc82a57a587002ff (diff) | |
download | linux-5bf490e6807bf56f49b5991b4be817407dd32656.tar.xz |
s390/qeth: delay draining the TX buffers
Wait until the QDIO data connection is severed. Otherwise the device
might still be processing the buffers, and end up accessing skb data
that we already freed.
Fixes: 8b5026bc1693 ("s390/qeth: fix qdio teardown after early init error")
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/s390/net/qeth_l3_main.c')
-rw-r--r-- | drivers/s390/net/qeth_l3_main.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c index 4d461960370d..09ef518ca1ea 100644 --- a/drivers/s390/net/qeth_l3_main.c +++ b/drivers/s390/net/qeth_l3_main.c @@ -1168,11 +1168,11 @@ static void qeth_l3_stop_card(struct qeth_card *card) if (card->state == CARD_STATE_SOFTSETUP) { qeth_l3_clear_ip_htable(card, 1); qeth_clear_ipacmd_list(card); - qeth_drain_output_queues(card); card->state = CARD_STATE_DOWN; } qeth_qdio_clear_card(card, 0); + qeth_drain_output_queues(card); qeth_clear_working_pool_list(card); flush_workqueue(card->event_wq); qeth_flush_local_addrs(card); |