mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 08:15:07 -04:00
rv: Fix read_lock scope in per-task DA cleanup
The da_monitor_reset_all() function for per-task monitors takes tasklist_lock while iterating over tasks, then keeps it also while iterating over idle tasks (one per CPU). The latter is not necessary since the lock needs to guard only for_each_process_thread(). Use a scoped_guard for more compact syntax and adjust the scope only where the lock is necessary. Reviewed-by: Wen Yang <wen.yang@linux.dev> Reviewed-by: Nam Cao <namcao@linutronix.de> Link: https://lore.kernel.org/r/20260601153840.124372-13-gmonaco@redhat.com Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
This commit is contained in:
@@ -334,12 +334,12 @@ static void __da_monitor_reset_all(void (*reset)(struct da_monitor *))
|
||||
struct task_struct *g, *p;
|
||||
int cpu;
|
||||
|
||||
read_lock(&tasklist_lock);
|
||||
for_each_process_thread(g, p)
|
||||
reset(da_get_monitor(p));
|
||||
scoped_guard(read_lock, &tasklist_lock) {
|
||||
for_each_process_thread(g, p)
|
||||
reset(da_get_monitor(p));
|
||||
}
|
||||
for_each_present_cpu(cpu)
|
||||
reset(da_get_monitor(idle_task(cpu)));
|
||||
read_unlock(&tasklist_lock);
|
||||
}
|
||||
|
||||
static void da_monitor_reset_all(void)
|
||||
|
||||
Reference in New Issue
Block a user