diff options
Diffstat (limited to 'arch/um/kernel')
-rw-r--r-- | arch/um/kernel/reboot.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/um/kernel/reboot.c b/arch/um/kernel/reboot.c index 66d754c46e7..1411f4e79f9 100644 --- a/arch/um/kernel/reboot.c +++ b/arch/um/kernel/reboot.c | |||
@@ -25,10 +25,13 @@ static void kill_off_processes(void) | |||
25 | 25 | ||
26 | read_lock(&tasklist_lock); | 26 | read_lock(&tasklist_lock); |
27 | for_each_process(p) { | 27 | for_each_process(p) { |
28 | if (p->mm == NULL) | 28 | task_lock(p); |
29 | if (!p->mm) { | ||
30 | task_unlock(p); | ||
29 | continue; | 31 | continue; |
30 | 32 | } | |
31 | pid = p->mm->context.id.u.pid; | 33 | pid = p->mm->context.id.u.pid; |
34 | task_unlock(p); | ||
32 | os_kill_ptraced_process(pid, 1); | 35 | os_kill_ptraced_process(pid, 1); |
33 | } | 36 | } |
34 | read_unlock(&tasklist_lock); | 37 | read_unlock(&tasklist_lock); |