mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-11-18 00:17:37 +00:00
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:
|
||
|---|---|---|
| .. | ||
| bnxt_re.h | ||
| hw_counters.c | ||
| hw_counters.h | ||
| ib_verbs.c | ||
| ib_verbs.h | ||
| Kconfig | ||
| main.c | ||
| Makefile | ||
| qplib_fp.c | ||
| qplib_fp.h | ||
| qplib_rcfw.c | ||
| qplib_rcfw.h | ||
| qplib_res.c | ||
| qplib_res.h | ||
| qplib_sp.c | ||
| qplib_sp.h | ||
| qplib_tlv.h | ||
| roce_hsi.h | ||