OSDN Git Service

ACPI / PM: Hold ACPI scan lock over the "freeze" sleep state
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 15 May 2014 21:29:57 +0000 (23:29 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 16 May 2014 10:18:27 +0000 (12:18 +0200)
commit1f0b63866fc1be700260547be8edf8e6f0af37f2
tree19834a42634cdc86a0addca25d1f71cbf408b273
parentfad16dd9c962229c5965ec6f5cd5f48180f94fd4
ACPI / PM: Hold ACPI scan lock over the "freeze" sleep state

The "freeze" sleep state suffers from the same issue that was
addressed by commit ad07277e82de (ACPI / PM: Hold acpi_scan_lock over
system PM transitions) for ACPI sleep states, that is, things break
if ->remove() is called for devices whose system resume callbacks
haven't been executed yet.

It also can be addressed in the same way, by holding the ACPI scan
lock over the "freeze" sleep state and PM transitions to and from
that state, but ->begin() and ->end() platform operations for the
"freeze" sleep state are needed for this purpose.

This change has been tested on Acer Aspire S5 with Thunderbolt.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/sleep.c
include/linux/suspend.h
kernel/power/suspend.c