aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-04-06 22:56:04 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-04-06 22:56:04 -0400
commitf21fec96ead90eae7bcb3c847e8115c119c5dc62 (patch)
treed60a74cc16aab57f5c8a4a496f0c6e9f33848d45
parenta0421da44fc8dcb94aad8889dae285f7ee923f80 (diff)
parenteeaab2d8af2cf1d36d7086f22e9de42d6dd2995c (diff)
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
Pull ACPI & Power Management patches from Len Brown: "Two fixes for cpuidle merge-window changes, plus a URL fix in MAINTAINERS" * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: MAINTAINERS: Update git url for ACPI cpuidle: Fix panic in CPU off-lining with no idle driver ACPI processor: Use safe_halt() rather than halt() in acpi_idle_play_dead()
-rw-r--r--MAINTAINERS2
-rw-r--r--drivers/acpi/processor_idle.c2
-rw-r--r--drivers/cpuidle/cpuidle.c5
3 files changed, 6 insertions, 3 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 0a2e44ce077a..2dcfca850639 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -228,7 +228,7 @@ M: Len Brown <lenb@kernel.org>
228L: linux-acpi@vger.kernel.org 228L: linux-acpi@vger.kernel.org
229W: http://www.lesswatts.org/projects/acpi/ 229W: http://www.lesswatts.org/projects/acpi/
230Q: http://patchwork.kernel.org/project/linux-acpi/list/ 230Q: http://patchwork.kernel.org/project/linux-acpi/list/
231T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git 231T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
232S: Supported 232S: Supported
233F: drivers/acpi/ 233F: drivers/acpi/
234F: drivers/pnp/pnpacpi/ 234F: drivers/pnp/pnpacpi/
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index b3447f63e46b..f3decb30223f 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -786,7 +786,7 @@ static int acpi_idle_play_dead(struct cpuidle_device *dev, int index)
786 while (1) { 786 while (1) {
787 787
788 if (cx->entry_method == ACPI_CSTATE_HALT) 788 if (cx->entry_method == ACPI_CSTATE_HALT)
789 halt(); 789 safe_halt();
790 else if (cx->entry_method == ACPI_CSTATE_SYSTEMIO) { 790 else if (cx->entry_method == ACPI_CSTATE_SYSTEMIO) {
791 inb(cx->address); 791 inb(cx->address);
792 /* See comment in acpi_idle_do_entry() */ 792 /* See comment in acpi_idle_do_entry() */
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
index 87411cebc577..2f0083a51a9a 100644
--- a/drivers/cpuidle/cpuidle.c
+++ b/drivers/cpuidle/cpuidle.c
@@ -74,7 +74,7 @@ static cpuidle_enter_t cpuidle_enter_ops;
74/** 74/**
75 * cpuidle_play_dead - cpu off-lining 75 * cpuidle_play_dead - cpu off-lining
76 * 76 *
77 * Only returns in case of an error 77 * Returns in case of an error or no driver
78 */ 78 */
79int cpuidle_play_dead(void) 79int cpuidle_play_dead(void)
80{ 80{
@@ -83,6 +83,9 @@ int cpuidle_play_dead(void)
83 int i, dead_state = -1; 83 int i, dead_state = -1;
84 int power_usage = -1; 84 int power_usage = -1;
85 85
86 if (!drv)
87 return -ENODEV;
88
86 /* Find lowest-power state that supports long-term idle */ 89 /* Find lowest-power state that supports long-term idle */
87 for (i = CPUIDLE_DRIVER_STATE_START; i < drv->state_count; i++) { 90 for (i = CPUIDLE_DRIVER_STATE_START; i < drv->state_count; i++) {
88 struct cpuidle_state *s = &drv->states[i]; 91 struct cpuidle_state *s = &drv->states[i];