X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=kernel%2Ffreezer.c;h=a8900a3bc27a895b65580a23a144e581bfe0149d;hb=86a5c36cb57075129b77349446b74da3ed864e11;hp=4ada72f5f55adfb9b02bd01bc834407a0819c320;hpb=bf3c956402dcbea85d4551dbe9bd2ee1451a3a8d;p=firefly-linux-kernel-4.4.55.git diff --git a/kernel/freezer.c b/kernel/freezer.c index 4ada72f5f55a..a8900a3bc27a 100644 --- a/kernel/freezer.c +++ b/kernel/freezer.c @@ -39,7 +39,7 @@ static DEFINE_SPINLOCK(freezer_lock); */ bool freezing_slow_path(struct task_struct *p) { - if (p->flags & PF_NOFREEZE) + if (p->flags & (PF_NOFREEZE | PF_SUSPEND_TASK)) return false; if (test_thread_flag(TIF_MEMDIE)) @@ -150,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);