MIPS: Use rcu to lookup a task in mipsmt_sys_sched_setaffinity()
authorDavidlohr Bueso <dave@stgolabs.net>
Mon, 31 Aug 2020 20:14:02 +0000 (13:14 -0700)
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>
Thu, 3 Sep 2020 08:13:43 +0000 (10:13 +0200)
The call simply looks up the corresponding task (without iterating
the tasklist), which is safe under rcu instead of the tasklist_lock.
In addition, the setaffinity counter part already does this.

Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
arch/mips/kernel/mips-mt-fpaff.c

index 1a08428..6c590ef 100644 (file)
@@ -167,7 +167,7 @@ asmlinkage long mipsmt_sys_sched_getaffinity(pid_t pid, unsigned int len,
                return -EINVAL;
 
        get_online_cpus();
-       read_lock(&tasklist_lock);
+       rcu_read_lock();
 
        retval = -ESRCH;
        p = find_process_by_pid(pid);
@@ -181,7 +181,7 @@ asmlinkage long mipsmt_sys_sched_getaffinity(pid_t pid, unsigned int len,
        cpumask_and(&mask, &allowed, cpu_active_mask);
 
 out_unlock:
-       read_unlock(&tasklist_lock);
+       rcu_read_unlock();
        put_online_cpus();
        if (retval)
                return retval;