| From 05dee5bfc7796d46a0b969bce8512b8254d7ca13 Mon Sep 17 00:00:00 2001 |
| From: Karsten Graul <kgraul@linux.ibm.com> |
| Date: Tue, 10 Mar 2020 09:33:30 +0100 |
| Subject: [PATCH] net/smc: cancel event worker during device removal |
| |
| commit ece0d7bd74615773268475b6b64d6f1ebbd4b4c6 upstream. |
| |
| 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> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/net/smc/smc_ib.c b/net/smc/smc_ib.c |
| index c9c192c6358a..d74a71dff5b8 100644 |
| --- a/net/smc/smc_ib.c |
| +++ b/net/smc/smc_ib.c |
| @@ -568,6 +568,7 @@ static void smc_ib_remove_dev(struct ib_device *ibdev, void *client_data) |
| spin_unlock(&smc_ib_devices.lock); |
| smc_ib_cleanup_per_ibdev(smcibdev); |
| ib_unregister_event_handler(&smcibdev->event_handler); |
| + cancel_work_sync(&smcibdev->port_event_work); |
| kfree(smcibdev); |
| } |
| |
| -- |
| 2.7.4 |
| |