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:10:54 +0200
commit5e72f33ddfdb69cb21c1b59d31bbd3498d31b14a (patch)
tree12f714c298a51dcaa23497d4a872718f599f3c16
parentcb1ded0c577aaa502b15cbf4f6e479401000741e (diff)
downloadlinux-5e72f33ddfdb69cb21c1b59d31bbd3498d31b14a.tar.gz
linux-5e72f33ddfdb69cb21c1b59d31bbd3498d31b14a.tar.bz2
linux-5e72f33ddfdb69cb21c1b59d31bbd3498d31b14a.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 cb5785dda524..ac804c3abd95 100644
--- a/drivers/infiniband/hw/hfi1/chip.c
+++ b/drivers/infiniband/hw/hfi1/chip.c
@@ -12141,6 +12141,7 @@ static void free_cntrs(struct hfi1_devdata *dd)
if (dd->synth_stats_timer.data)
del_timer_sync(&dd->synth_stats_timer);
+ cancel_work_sync(&dd->update_cntr_work);
dd->synth_stats_timer.data = 0;
ppd = (struct hfi1_pportdata *)(dd + 1);
for (i = 0; i < dd->num_pports; i++, ppd++) {