mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
RDMA/ipoib: Drain RCU callbacks during module teardown
IPoIB reclamation completions can be signaled from inside an RCU callback.
Teardown can wake before the callback returns and unload ib_ipoib while its
code is still executing.
Client registration failure can also remove already-added devices and queue
callbacks. Wait after client and workqueue teardown.
Fixes: b63b70d877 ("IPoIB: Use a private hash table for path lookup in xmit path")
Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Closes: https://lore.kernel.org/linux-rdma/20260708092316.Qb39F_B0@linutronix.de/
Link: https://patch.msgid.link/20260709-unload-rcu-v1-3-fccd27211e5a@nvidia.com
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
This commit is contained in:
parent
e37cdd75f8
commit
31b7c70067
|
|
@ -2783,6 +2783,7 @@ static int __init ipoib_init_module(void)
|
|||
err_sa:
|
||||
ib_sa_unregister_client(&ipoib_sa_client);
|
||||
destroy_workqueue(ipoib_workqueue);
|
||||
rcu_barrier();
|
||||
|
||||
err_fs:
|
||||
ipoib_unregister_debugfs();
|
||||
|
|
@ -2800,6 +2801,7 @@ static void __exit ipoib_cleanup_module(void)
|
|||
ib_sa_unregister_client(&ipoib_sa_client);
|
||||
ipoib_unregister_debugfs();
|
||||
destroy_workqueue(ipoib_workqueue);
|
||||
rcu_barrier();
|
||||
}
|
||||
|
||||
module_init(ipoib_init_module);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user