Commit 786f18c6 authored by Dmitry Torokhov's avatar Dmitry Torokhov Committed by Len Brown

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: default avatarDmitry Torokhov <dtor@mail.ru>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent b4bd8c66
...@@ -216,10 +216,8 @@ static int acpi_power_off_device(acpi_handle handle) ...@@ -216,10 +216,8 @@ static int acpi_power_off_device(acpi_handle handle)
{ {
int result = 0; int result = 0;
acpi_status status = AE_OK; acpi_status status = AE_OK;
struct acpi_device *device = NULL;
struct acpi_power_resource *resource = NULL; struct acpi_power_resource *resource = NULL;
result = acpi_power_get_context(handle, &resource); result = acpi_power_get_context(handle, &resource);
if (result) if (result)
return result; return result;
...@@ -230,13 +228,13 @@ static int acpi_power_off_device(acpi_handle handle) ...@@ -230,13 +228,13 @@ static int acpi_power_off_device(acpi_handle handle)
if (resource->references) { if (resource->references) {
ACPI_DEBUG_PRINT((ACPI_DB_INFO, ACPI_DEBUG_PRINT((ACPI_DB_INFO,
"Resource [%s] is still in use, dereferencing\n", "Resource [%s] is still in use, dereferencing\n",
device->pnp.bus_id)); resource->device->pnp.bus_id));
return 0; return 0;
} }
if (resource->state == ACPI_POWER_RESOURCE_STATE_OFF) { if (resource->state == ACPI_POWER_RESOURCE_STATE_OFF) {
ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Resource [%s] already off\n", ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Resource [%s] already off\n",
device->pnp.bus_id)); resource->device->pnp.bus_id));
return 0; return 0;
} }
...@@ -251,8 +249,7 @@ static int acpi_power_off_device(acpi_handle handle) ...@@ -251,8 +249,7 @@ static int acpi_power_off_device(acpi_handle handle)
return -ENOEXEC; return -ENOEXEC;
/* Update the power resource's _device_ power state */ /* Update the power resource's _device_ power state */
device = resource->device; resource->device->power.state = ACPI_STATE_D3;
device->power.state = ACPI_STATE_D3;
ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Resource [%s] turned off\n", ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Resource [%s] turned off\n",
resource->name)); resource->name));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment