X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=kernel%2Ffreezer.c;h=a8900a3bc27a895b65580a23a144e581bfe0149d;hb=c7606d1d069275d8a4df33d8ed92a62de069a980;hp=aa6a8aadb911fb323b4662a4652c95ff4319f0c5;hpb=b73117c49364551ff789db7c424a115ac5b77850;p=cascardo%2Flinux.git diff --git a/kernel/freezer.c b/kernel/freezer.c index aa6a8aadb911..a8900a3bc27a 100644 --- a/kernel/freezer.c +++ b/kernel/freezer.c @@ -42,6 +42,9 @@ bool freezing_slow_path(struct task_struct *p) if (p->flags & (PF_NOFREEZE | PF_SUSPEND_TASK)) return false; + if (test_thread_flag(TIF_MEMDIE)) + return false; + if (pm_nosig_freezing || cgroup_freezing(p)) return true; @@ -147,12 +150,6 @@ void __thaw_task(struct task_struct *p) { unsigned long flags; - /* - * Clear freezing and kick @p if FROZEN. Clearing is guaranteed to - * be visible to @p as waking up implies wmb. Waking up inside - * freezer_lock also prevents wakeups from leaking outside - * refrigerator. - */ spin_lock_irqsave(&freezer_lock, flags); if (frozen(p)) wake_up_process(p);