From: Lv Zheng Date: Fri, 16 Nov 2012 01:46:28 +0000 (+0100) Subject: ACPI / PM: Add check preventing transitioning to non-D0 state from D3. X-Git-Tag: v3.8-rc1~182^2~16^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ddc150f7a33ae0c9cb16eaac3641abc00f56316f;p=thirdparty%2Fkernel%2Flinux.git ACPI / PM: Add check preventing transitioning to non-D0 state from D3. No power transitioning from D3 state up to a non-D0 state is allowed so make acpi_device_set_power() fail and complain if such a transition is attempted. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki --- diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 07a20ee3e690b..1f0d457ecbcf8 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -306,6 +306,12 @@ int acpi_device_set_power(struct acpi_device *device, int state) * a lower-powered state. */ if (state < device->power.state) { + if (device->power.state >= ACPI_STATE_D3_HOT && + state != ACPI_STATE_D0) { + printk(KERN_WARNING PREFIX + "Cannot transition to non-D0 state from D3\n"); + return -ENODEV; + } if (device->power.flags.power_resources) { result = acpi_power_transition(device, state); if (result)