summaryrefslogtreecommitdiffstats
path: root/.gitignore
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2020-02-11 10:11:02 +0100
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2020-02-11 10:11:02 +0100
commite3728b50cd9be7d4b1469447cdf1feb93e3b7adb (patch)
tree446902616310615718c4615e9dbe1a1ea2e5a914 /.gitignore
parentf0ac20c3f6137910c8a927953e8a92f5b3716166 (diff)
downloadlinux-e3728b50cd9be7d4b1469447cdf1feb93e3b7adb.tar.bz2
ACPI: PM: s2idle: Avoid possible race related to the EC GPE
It is theoretically possible for the ACPI EC GPE to be set after the s2idle_ops->wake() called from s2idle_loop() has returned and before the subsequent pm_wakeup_pending() check is carried out. If that happens, the resulting wakeup event will cause the system to resume even though it may be a spurious one. To avoid that race, first make the ->wake() callback in struct platform_s2idle_ops return a bool value indicating whether or not to let the system resume and rearrange s2idle_loop() to use that value instad of the direct pm_wakeup_pending() call if ->wake() is present. Next, rework acpi_s2idle_wake() to process EC events and check pm_wakeup_pending() before re-arming the SCI for system wakeup to prevent it from triggering prematurely and add comments to that function to explain the rationale for the new code flow. Fixes: 56b991849009 ("PM: sleep: Simplify suspend-to-idle control flow") Cc: 5.4+ <stable@vger.kernel.org> # 5.4+ Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions