OOM: dont kill kernel threads

file:d3001a0605909f0381d5b97bd1c4ba5326c553cd -> file:7acbf870b7bdd9cc81f9f8643f898f1cf27b0a61
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -725,9 +725,10 @@ void out_of_memory(struct zonelist *zone
check_panic_on_oom(constraint, gfp_mask, order, mpol_mask);
read_lock(&tasklist_lock);
- if (sysctl_oom_kill_allocating_task &&
+ if (sysctl_oom_kill_allocating_task && current->mm &&
!oom_unkillable_task(current, NULL, nodemask) &&
- current->mm && !atomic_read(&current->mm->oom_disable_count)) {
+ current->signal->oom_score_adj != OOM_SCORE_ADJ_MIN &&
+ !atomic_read(&current->mm->oom_disable_count)) {
/*
* oom_kill_process() needs tasklist_lock held. If it returns
* non-zero, current could not be killed so we must fallback to