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()
This commit is contained in:
Linus Torvalds 2012-04-06 19:56:04 -07:00
Родитель a0421da44f eeaab2d8af
Коммит f21fec96ea
3 изменённых файлов: 6 добавлений и 3 удалений

Просмотреть файл

@ -228,7 +228,7 @@ M: Len Brown <lenb@kernel.org>
L: linux-acpi@vger.kernel.org L: linux-acpi@vger.kernel.org
W: http://www.lesswatts.org/projects/acpi/ W: http://www.lesswatts.org/projects/acpi/
Q: http://patchwork.kernel.org/project/linux-acpi/list/ Q: http://patchwork.kernel.org/project/linux-acpi/list/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
S: Supported S: Supported
F: drivers/acpi/ F: drivers/acpi/
F: drivers/pnp/pnpacpi/ F: drivers/pnp/pnpacpi/

Просмотреть файл

@ -786,7 +786,7 @@ static int acpi_idle_play_dead(struct cpuidle_device *dev, int index)
while (1) { while (1) {
if (cx->entry_method == ACPI_CSTATE_HALT) if (cx->entry_method == ACPI_CSTATE_HALT)
halt(); safe_halt();
else if (cx->entry_method == ACPI_CSTATE_SYSTEMIO) { else if (cx->entry_method == ACPI_CSTATE_SYSTEMIO) {
inb(cx->address); inb(cx->address);
/* See comment in acpi_idle_do_entry() */ /* See comment in acpi_idle_do_entry() */

Просмотреть файл

@ -74,7 +74,7 @@ static cpuidle_enter_t cpuidle_enter_ops;
/** /**
* cpuidle_play_dead - cpu off-lining * 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) int cpuidle_play_dead(void)
{ {
@ -83,6 +83,9 @@ int cpuidle_play_dead(void)
int i, dead_state = -1; int i, dead_state = -1;
int power_usage = -1; int power_usage = -1;
if (!drv)
return -ENODEV;
/* Find lowest-power state that supports long-term idle */ /* Find lowest-power state that supports long-term idle */
for (i = CPUIDLE_DRIVER_STATE_START; i < drv->state_count; i++) { for (i = CPUIDLE_DRIVER_STATE_START; i < drv->state_count; i++) {
struct cpuidle_state *s = &drv->states[i]; struct cpuidle_state *s = &drv->states[i];