diff --git a/[refs] b/[refs] index 11e05aea2a0e..594d435c69e5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 75754681fe79b84dde1048470a44eeb64192fad6 +refs/heads/master: 4f774b912dd1d5752cd33b696509531b0321c3e0 diff --git a/trunk/mm/oom_kill.c b/trunk/mm/oom_kill.c index ac300c99baf6..e8ab3dfbc74b 100644 --- a/trunk/mm/oom_kill.c +++ b/trunk/mm/oom_kill.c @@ -745,11 +745,11 @@ void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, read_unlock(&tasklist_lock); /* - * Give "p" a good chance of killing itself before we - * retry to allocate memory unless "p" is current + * Give the killed threads a good chance of exiting before trying to + * allocate memory again. */ - if (killed && !test_thread_flag(TIF_MEMDIE)) - schedule_timeout_uninterruptible(1); + if (killed) + schedule_timeout_killable(1); } /* @@ -764,6 +764,5 @@ void pagefault_out_of_memory(void) out_of_memory(NULL, 0, 0, NULL, false); clear_system_oom(); } - if (!test_thread_flag(TIF_MEMDIE)) - schedule_timeout_uninterruptible(1); + schedule_timeout_killable(1); }