From 72664154e8230bf0c43d6209f07aece763a1f4a9 Mon Sep 17 00:00:00 2001 From: Len Brown Date: Fri, 6 Apr 2012 21:48:59 -0400 Subject: [PATCH] --- yaml --- r: 298871 b: refs/heads/master c: eeaab2d8af2cf1d36d7086f22e9de42d6dd2995c h: refs/heads/master i: 298869: ac5595854f41c6ac61cbaa82079ef6de008f5c06 298867: 3414b9e352eee020b64c1c1d00af29e0a43124a6 298863: 906e3b493774bb70d9bdfe3bed46c0ea95e8856d v: v3 --- [refs] | 2 +- trunk/drivers/acpi/processor_idle.c | 2 +- trunk/drivers/cpuidle/cpuidle.c | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index bbb6b5854771..9e68618f356e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: aaef292acf3a78d9c0bb6fb72226077d286b45d7 +refs/heads/master: eeaab2d8af2cf1d36d7086f22e9de42d6dd2995c diff --git a/trunk/drivers/acpi/processor_idle.c b/trunk/drivers/acpi/processor_idle.c index b3447f63e46b..f3decb30223f 100644 --- a/trunk/drivers/acpi/processor_idle.c +++ b/trunk/drivers/acpi/processor_idle.c @@ -786,7 +786,7 @@ static int acpi_idle_play_dead(struct cpuidle_device *dev, int index) while (1) { if (cx->entry_method == ACPI_CSTATE_HALT) - halt(); + safe_halt(); else if (cx->entry_method == ACPI_CSTATE_SYSTEMIO) { inb(cx->address); /* See comment in acpi_idle_do_entry() */ diff --git a/trunk/drivers/cpuidle/cpuidle.c b/trunk/drivers/cpuidle/cpuidle.c index 87411cebc577..2f0083a51a9a 100644 --- a/trunk/drivers/cpuidle/cpuidle.c +++ b/trunk/drivers/cpuidle/cpuidle.c @@ -74,7 +74,7 @@ static cpuidle_enter_t cpuidle_enter_ops; /** * cpuidle_play_dead - cpu off-lining * - * Only returns in case of an error + * Returns in case of an error or no driver */ int cpuidle_play_dead(void) { @@ -83,6 +83,9 @@ int cpuidle_play_dead(void) int i, dead_state = -1; int power_usage = -1; + if (!drv) + return -ENODEV; + /* Find lowest-power state that supports long-term idle */ for (i = CPUIDLE_DRIVER_STATE_START; i < drv->state_count; i++) { struct cpuidle_state *s = &drv->states[i];