From 68dc67e4d50983bb9b345d93f7c0ec525c7b7c3a Mon Sep 17 00:00:00 2001 From: Toshi Kani Date: Fri, 26 Oct 2012 13:38:57 +0200 Subject: [PATCH] --- yaml --- r: 336671 b: refs/heads/master c: b3c450c38075f414077e58439cff6bdce9e47df8 h: refs/heads/master i: 336669: 65b712b4cafa6987ac846dd889604cea72393402 336667: 29327604b93e99338cc893c6c57d12bd007b192a 336663: fb6382971ef530909e735b4e103f37aad19ec8ea 336655: f08000cc70db018011d91bc6aed02ff4ea4e2b96 336639: 06cb8aea094fed5c94c6cb763a9aa8dd4dc2de9b v: v3 --- [refs] | 2 +- trunk/drivers/acpi/scan.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index a3bddbf8016a..efdc4440b828 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 594df89a59cf2a2afc22fe27f508dd864d1edb5f +refs/heads/master: b3c450c38075f414077e58439cff6bdce9e47df8 diff --git a/trunk/drivers/acpi/scan.c b/trunk/drivers/acpi/scan.c index 1fcb8678665c..ed87f433cec2 100644 --- a/trunk/drivers/acpi/scan.c +++ b/trunk/drivers/acpi/scan.c @@ -97,6 +97,7 @@ void acpi_bus_hot_remove_device(void *context) struct acpi_eject_event *ej_event = (struct acpi_eject_event *) context; struct acpi_device *device; acpi_handle handle = ej_event->handle; + acpi_handle temp; struct acpi_object_list arg_list; union acpi_object arg; acpi_status status = AE_OK; @@ -117,13 +118,16 @@ void acpi_bus_hot_remove_device(void *context) goto err_out; } + /* device has been freed */ + device = NULL; + /* power off device */ status = acpi_evaluate_object(handle, "_PS3", NULL, NULL); if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) printk(KERN_WARNING PREFIX "Power-off device failed\n"); - if (device->flags.lockable) { + if (ACPI_SUCCESS(acpi_get_handle(handle, "_LCK", &temp))) { arg_list.count = 1; arg_list.pointer = &arg; arg.type = ACPI_TYPE_INTEGER;