summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/power.c
diff options
context:
space:
mode:
authorDmitry Torokhov <dtor@insightbb.com>2006-08-23 23:18:06 -0400
committerLen Brown <len.brown@intel.com>2006-10-14 01:54:21 -0400
commit786f18c666d7202a86a8aa42a98783b115fe8739 (patch)
treee5c304ec8a0caf57b8b7d87a6e73cfa65e17d53d /drivers/acpi/power.c
parentb4bd8c66435a8cdf8c90334fb3b517a23ff2ab95 (diff)
downloadlinux-786f18c666d7202a86a8aa42a98783b115fe8739.tar.bz2
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.c9
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));