[PATCH 9/13] ACPI / PM: Register acpi_power_driver early

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Rafael J. Wysocki
Date: Wednesday, November 24, 2010 - 4:10 pm

From: Rafael J. Wysocki <rjw@sisk.pl>

The ACPI device driver used for handling power resources,
acpi_power_driver, creates a struct acpi_power_resource object for
each ACPI device representing a power resource.  These objects are
then used when setting and reading the power states of devices using
the corresponding power resources.  Unfortunately, acpi_power_driver
is registered after acpi_scan_init() that may add devices using the
power resources before acpi_power_driver has a chance to create
struct acpi_power_resource objects for them (specifically, the power
resources may be referred to during the scanning process through
acpi_bus_get_power() before they have been initialized).

As the first step towards fixing this issue, move the registration
of acpi_power_driver into acpi_scan_init() so that power resource
devices can be initialized by it as soon as they have been found in
the namespace.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
 drivers/acpi/bus.c  |    1 -
 drivers/acpi/scan.c |    2 ++
 2 files changed, 2 insertions(+), 1 deletion(-)

Index: linux-2.6/drivers/acpi/bus.c
===================================================================
--- linux-2.6.orig/drivers/acpi/bus.c
+++ linux-2.6/drivers/acpi/bus.c
@@ -1099,7 +1099,6 @@ static int __init acpi_init(void)
 
 	acpi_scan_init();
 	acpi_ec_init();
-	acpi_power_init();
 	acpi_debugfs_init();
 	acpi_sleep_proc_init();
 	acpi_wakeup_device_init();
Index: linux-2.6/drivers/acpi/scan.c
===================================================================
--- linux-2.6.orig/drivers/acpi/scan.c
+++ linux-2.6/drivers/acpi/scan.c
@@ -1547,6 +1547,8 @@ int __init acpi_scan_init(void)
 		printk(KERN_ERR PREFIX "Could not register bus type\n");
 	}
 
+	acpi_power_init();
+
 	/*
 	 * Enumerate devices in the ACPI namespace.
 	 */

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 0/13] ACPI / PM: Rework power resources management, Rafael J. Wysocki, (Wed Nov 24, 4:01 pm)
[PATCH 1/13] ACPI / PM: Check device state before refcount ..., Rafael J. Wysocki, (Wed Nov 24, 4:02 pm)
[PATCH 2/13] ACPI / PM: Do not refcount power resources th ..., Rafael J. Wysocki, (Wed Nov 24, 4:03 pm)
[PATCH 3/13] ACPI / PM: Prevent acpi_power_get_inferred_st ..., Rafael J. Wysocki, (Wed Nov 24, 4:05 pm)
[PATCH 4/13] ACPI / PM: Add functions for manipulating lis ..., Rafael J. Wysocki, (Wed Nov 24, 4:06 pm)
[PATCH 5/13] ACPI / PM: Introduce function for refcounting ..., Rafael J. Wysocki, (Wed Nov 24, 4:06 pm)
[PATCH 6/13] ACPI / PM: Introduce __acpi_bus_get_power(), Rafael J. Wysocki, (Wed Nov 24, 4:07 pm)
[PATCH 7/13] ACPI / PM: Add function for device power stat ..., Rafael J. Wysocki, (Wed Nov 24, 4:08 pm)
[PATCH 8/13] ACPI / PM: Add function for updating device p ..., Rafael J. Wysocki, (Wed Nov 24, 4:09 pm)
[PATCH 9/13] ACPI / PM: Register acpi_power_driver early, Rafael J. Wysocki, (Wed Nov 24, 4:10 pm)
[PATCH 10/13] ACPI / PM: Register power resource devices a ..., Rafael J. Wysocki, (Wed Nov 24, 4:10 pm)
[PATCH 11/13] ACPI / Fan: Rework the handling of power res ..., Rafael J. Wysocki, (Wed Nov 24, 4:11 pm)
[PATCH 12/13] ACPI / PM: Drop acpi_bus_get_power(), Rafael J. Wysocki, (Wed Nov 24, 4:12 pm)
[PATCH 13/13] ACPI / PM: Drop acpi_power_nocheck, Rafael J. Wysocki, (Wed Nov 24, 4:12 pm)
[PATCH] Platform / x86: Make fujitsu_laptop use acpi_bus_u ..., Rafael J. Wysocki, (Fri Nov 26, 2:55 pm)
Re: [PATCH 12/13] ACPI / PM: Drop acpi_bus_get_power(), Rafael J. Wysocki, (Wed Dec 1, 3:07 pm)