diff options
author | Karsten Graul <kgraul@linux.ibm.com> | 2020-03-10 09:33:30 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-03-10 15:40:33 -0700 |
commit | ece0d7bd74615773268475b6b64d6f1ebbd4b4c6 (patch) | |
tree | f81d38d1ffb862c1627f32b9aab0b5678d4b0df2 /net | |
parent | 60380488e4e0b95e9e82aa68aa9705baa86de84c (diff) |
net/smc: cancel event worker during device removal
During IB device removal, cancel the event worker before the device
structure is freed.
Fixes: a4cf0443c414 ("smc: introduce SMC as an IB-client")
Reported-by: syzbot+b297c6825752e7a07272@syzkaller.appspotmail.com
Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
Reviewed-by: Ursula Braun <ubraun@linux.ibm.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/smc/smc_ib.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/smc/smc_ib.c b/net/smc/smc_ib.c index d6ba186f67e2..05b825b3cfa4 100644 --- a/net/smc/smc_ib.c +++ b/net/smc/smc_ib.c @@ -582,6 +582,7 @@ static void smc_ib_remove_dev(struct ib_device *ibdev, void *client_data) smc_smcr_terminate_all(smcibdev); smc_ib_cleanup_per_ibdev(smcibdev); ib_unregister_event_handler(&smcibdev->event_handler); + cancel_work_sync(&smcibdev->port_event_work); kfree(smcibdev); } |