mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
rv: Ensure all pending probes terminate on per-obj monitor destroy
The monitor disable/destroy sequence detaches all probes and resets the
monitor's data, however it doesn't wait for pending probes. This is an
issue with per-object monitors, which free the monitor storage.
Call tracepoint_synchronize_unregister() to make sure to wait for all
pending probes before destroying the monitor storage.
Fixes: 4a24127bd6 ("rv: Add support for per-object monitors in DA/HA")
Reviewed-by: Wen Yang <wen.yang@linux.dev>
Reviewed-by: Nam Cao <namcao@linutronix.de>
Link: https://lore.kernel.org/r/20260601153840.124372-5-gmonaco@redhat.com
Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
This commit is contained in:
parent
c3d016ea82
commit
32171d828a
|
|
@ -511,9 +511,10 @@ static inline void da_monitor_destroy(void)
|
|||
struct hlist_node *tmp;
|
||||
int bkt;
|
||||
|
||||
tracepoint_synchronize_unregister();
|
||||
/*
|
||||
* This function is called after all probes are disabled, we need only
|
||||
* worry about concurrency against old events.
|
||||
* This function is called after all probes are disabled and no longer
|
||||
* pending, we can safely assume no concurrent user.
|
||||
*/
|
||||
synchronize_rcu();
|
||||
hash_for_each_safe(da_monitor_ht, bkt, tmp, mon_storage, node) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user