summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Miller <doug.miller@cornelisnetworks.com>2023-08-02 13:32:41 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-08-16 18:22:01 +0200
commit918c1e6843b7e81d0e5cf7994f41f28dc34c98b0 (patch)
tree0cfeca22a50e98730c15e134bdb40f6e43e83806
parentdf21468bfdc885f2495c01f5bb3e3431f0c07306 (diff)
downloadlinux-918c1e6843b7e81d0e5cf7994f41f28dc34c98b0.tar.gz
linux-918c1e6843b7e81d0e5cf7994f41f28dc34c98b0.tar.bz2
linux-918c1e6843b7e81d0e5cf7994f41f28dc34c98b0.zip
IB/hfi1: Fix possible panic during hotplug remove
commit 4fdfaef71fced490835145631a795497646f4555 upstream. During hotplug remove it is possible that the update counters work might be pending, and may run after memory has been freed. Cancel the update counters work before freeing memory. Fixes: 7724105686e7 ("IB/hfi1: add driver files") Signed-off-by: Douglas Miller <doug.miller@cornelisnetworks.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com> Link: https://lore.kernel.org/r/169099756100.3927190.15284930454106475280.stgit@awfm-02.cornelisnetworks.com Signed-off-by: Leon Romanovsky <leon@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/infiniband/hw/hfi1/chip.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/hfi1/chip.c b/drivers/infiniband/hw/hfi1/chip.c
index 689921dc3d4a..b69dd618146e 100644
--- a/drivers/infiniband/hw/hfi1/chip.c
+++ b/drivers/infiniband/hw/hfi1/chip.c
@@ -12306,6 +12306,7 @@ static void free_cntrs(struct hfi1_devdata *dd)
if (dd->synth_stats_timer.function)
del_timer_sync(&dd->synth_stats_timer);
+ cancel_work_sync(&dd->update_cntr_work);
ppd = (struct hfi1_pportdata *)(dd + 1);
for (i = 0; i < dd->num_pports; i++, ppd++) {
kfree(ppd->cntrs);