mirror_ubuntu-kernels/drivers/infiniband/hw/bnxt_re
Selvin Xavier 29900bf351 RDMA/bnxt_re: Fix hang during driver unload
Driver unload hits a hang during stress testing of load/unload.

stack trace snippet -

tasklet_kill at ffffffff9aabb8b2
bnxt_qplib_nq_stop_irq at ffffffffc0a805fb [bnxt_re]
bnxt_qplib_disable_nq at ffffffffc0a80c5b [bnxt_re]
bnxt_re_dev_uninit at ffffffffc0a67d15 [bnxt_re]
bnxt_re_remove_device at ffffffffc0a6af1d [bnxt_re]

tasklet_kill can hang if the tasklet is scheduled after it is disabled.

Modified the sequences to disable the interrupt first and synchronize
irq before disabling the tasklet.

Fixes: 1ac5a40479 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Link: https://lore.kernel.org/r/1689322969-25402-3-git-send-email-selvin.xavier@broadcom.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
2023-07-17 08:02:13 +03:00
..
bnxt_re.h Linux 6.4 2023-06-27 14:06:29 -03:00
hw_counters.c RDMA/bnxt_re: Fix kernel panic when trying to access bnxt_re_stat_descs 2021-10-29 12:10:33 -03:00
hw_counters.h RDMA/bnxt_re: Update statistics counter name 2021-09-20 13:37:00 -03:00
ib_verbs.c RDMA/bnxt_re: Prevent handling any completions after qp destroy 2023-07-17 08:02:13 +03:00
ib_verbs.h RDMA/bnxt_re: Enable low latency push 2023-06-21 14:13:17 -03:00
Kconfig RDMA/bnxt_re: Depend on bnxt ethernet driver and not blindly select it 2021-04-19 14:57:03 -03:00
main.c Linux 6.4 2023-06-27 14:06:29 -03:00
Makefile infiniband: prefix header search paths with $(srctree)/ 2019-01-25 15:28:50 -07:00
qplib_fp.c RDMA/bnxt_re: Fix hang during driver unload 2023-07-17 08:02:13 +03:00
qplib_fp.h RDMA/bnxt_re: Prevent handling any completions after qp destroy 2023-07-17 08:02:13 +03:00
qplib_rcfw.c RDMA/bnxt_re: Fix hang during driver unload 2023-07-17 08:02:13 +03:00
qplib_rcfw.h RDMA/bnxt_re: Reorg the bar mapping 2023-06-21 14:13:17 -03:00
qplib_res.c Linux 6.4 2023-06-27 14:06:29 -03:00
qplib_res.h RDMA/bnxt_re: Enable low latency push 2023-06-21 14:13:17 -03:00
qplib_sp.c Linux 6.4 2023-06-27 14:06:29 -03:00
qplib_sp.h RDMA/bnxt_re: Reorg the bar mapping 2023-06-21 14:13:17 -03:00
qplib_tlv.h RDMA/bnxt_re: RoCE slow path TLV support 2023-04-04 09:17:21 +03:00
roce_hsi.h RDMA/bnxt_re: Update HW interface headers 2023-04-04 09:17:21 +03:00