diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-04-06 22:56:04 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-04-06 22:56:04 -0400 |
commit | f21fec96ead90eae7bcb3c847e8115c119c5dc62 (patch) | |
tree | d60a74cc16aab57f5c8a4a496f0c6e9f33848d45 /drivers | |
parent | a0421da44fc8dcb94aad8889dae285f7ee923f80 (diff) | |
parent | eeaab2d8af2cf1d36d7086f22e9de42d6dd2995c (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()
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/acpi/processor_idle.c | 2 | ||||
-rw-r--r-- | drivers/cpuidle/cpuidle.c | 5 |
2 files changed, 5 insertions, 2 deletions
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 | */ |
79 | int cpuidle_play_dead(void) | 79 | int 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]; |