aboutsummaryrefslogtreecommitdiffstats
path: root/mm/oom_kill.c
diff options
context:
space:
mode:
authorNick Piggin <npiggin@suse.de>2006-09-26 02:31:32 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-09-26 11:48:49 -0400
commit5081dde33f7a61d28d9b185cc386f12cb837c7a4 (patch)
treed2e6f39db4005229580f571137a833c1dabfc38b /mm/oom_kill.c
parentaf5b912435de32fbede08cee949429823ed49781 (diff)
[PATCH] oom: kthread infinite loop fix
Skip kernel threads, rather than having them return 0 from badness. Theoretically, badness might truncate all results to 0, thus a kernel thread might be picked first, causing an infinite loop. Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm/oom_kill.c')
-rw-r--r--mm/oom_kill.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/mm/oom_kill.c b/mm/oom_kill.c
index f1aba7e7b760..12cd4735dc29 100644
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -207,6 +207,9 @@ static struct task_struct *select_bad_process(unsigned long *ppoints)
207 unsigned long points; 207 unsigned long points;
208 int releasing; 208 int releasing;
209 209
210 /* skip kernel threads */
211 if (!p->mm)
212 continue;
210 /* skip the init task with pid == 1 */ 213 /* skip the init task with pid == 1 */
211 if (p->pid == 1) 214 if (p->pid == 1)
212 continue; 215 continue;