diff options
| author | Dmitry Torokhov <dtor@insightbb.com> | 2006-08-23 23:18:06 -0400 | 
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2006-10-14 01:54:21 -0400 | 
| commit | 786f18c666d7202a86a8aa42a98783b115fe8739 (patch) | |
| tree | e5c304ec8a0caf57b8b7d87a6e73cfa65e17d53d /drivers/acpi/power.c | |
| parent | b4bd8c66435a8cdf8c90334fb3b517a23ff2ab95 (diff) | |
ACPI: fix potential OOPS in power driver with CONFIG_ACPI_DEBUG
device was set to null and used before set in a debug printk
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/power.c')
| -rw-r--r-- | drivers/acpi/power.c | 9 | 
1 files changed, 3 insertions, 6 deletions
| diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c index fec225d1b6b7..fe67a8af520e 100644 --- a/drivers/acpi/power.c +++ b/drivers/acpi/power.c @@ -216,10 +216,8 @@ static int acpi_power_off_device(acpi_handle handle)  {  	int result = 0;  	acpi_status status = AE_OK; -	struct acpi_device *device = NULL;  	struct acpi_power_resource *resource = NULL; -  	result = acpi_power_get_context(handle, &resource);  	if (result)  		return result; @@ -230,13 +228,13 @@ static int acpi_power_off_device(acpi_handle handle)  	if (resource->references) {  		ACPI_DEBUG_PRINT((ACPI_DB_INFO,  				  "Resource [%s] is still in use, dereferencing\n", -				  device->pnp.bus_id)); +				  resource->device->pnp.bus_id));  		return 0;  	}  	if (resource->state == ACPI_POWER_RESOURCE_STATE_OFF) {  		ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Resource [%s] already off\n", -				  device->pnp.bus_id)); +				  resource->device->pnp.bus_id));  		return 0;  	} @@ -251,8 +249,7 @@ static int acpi_power_off_device(acpi_handle handle)  		return -ENOEXEC;  	/* Update the power resource's _device_ power state */ -	device = resource->device; -	device->power.state = ACPI_STATE_D3; +	resource->device->power.state = ACPI_STATE_D3;  	ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Resource [%s] turned off\n",  			  resource->name)); | 
