lkml.org 
[lkml]   [2020]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 256/343] PM: sleep: Fix possible overflow in pm_system_cancel_wakeup()
    Date
    From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

    [ Upstream commit 2933954b71f10d392764f95eec0f0aa2d103054b ]

    It is not actually guaranteed that pm_abort_suspend will be
    nonzero when pm_system_cancel_wakeup() is called which may lead to
    subtle issues, so make it use atomic_dec_if_positive() instead of
    atomic_dec() for the safety sake.

    Fixes: 33e4f80ee69b ("ACPI / PM: Ignore spurious SCI wakeups from suspend-to-idle")
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Acked-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/base/power/wakeup.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
    index df53e2b3296b4..877b2a1767a5a 100644
    --- a/drivers/base/power/wakeup.c
    +++ b/drivers/base/power/wakeup.c
    @@ -877,7 +877,7 @@ EXPORT_SYMBOL_GPL(pm_system_wakeup);

    void pm_system_cancel_wakeup(void)
    {
    - atomic_dec(&pm_abort_suspend);
    + atomic_dec_if_positive(&pm_abort_suspend);
    }

    void pm_wakeup_clear(bool reset)
    --
    2.20.1


    \
     
     \ /
      Last update: 2020-01-24 11:03    [W:4.374 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site