diff options
author | Bob Moore <robert.moore@intel.com> | 2014-07-08 20:25:45 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-07-09 11:55:49 -0400 |
commit | 7817e265233e4b216aad509fc003cf4face238b9 (patch) | |
tree | bc06904c1f6b767e4080531638b6df2be4ff1186 /drivers/acpi/acpica | |
parent | 587fc727ad7bbb475d7663921e4f731de6e21857 (diff) |
ACPICA: Fix a regression for deletion of Alias() objects.
Fixes a regression introduced by commit e23d9b829754 (ACPICA:
Namespace: Properly null terminate objects detached from a namespace
node)
In the case of Alias namespace nodes, the node simply points to the aliased
node via the Object field; thus we cannot assume that the object is an
operand object.
Fixes: e23d9b829754 (ACPICA: Namespace: Properly null terminate objects detached from a namespace node)
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/acpica')
-rw-r--r-- | drivers/acpi/acpica/nsobject.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/acpi/acpica/nsobject.c b/drivers/acpi/acpica/nsobject.c index f1ea8e56cd87..a42ee9d6970d 100644 --- a/drivers/acpi/acpica/nsobject.c +++ b/drivers/acpi/acpica/nsobject.c | |||
@@ -237,17 +237,16 @@ void acpi_ns_detach_object(struct acpi_namespace_node *node) | |||
237 | (node->object->common.type != ACPI_TYPE_LOCAL_DATA)) { | 237 | (node->object->common.type != ACPI_TYPE_LOCAL_DATA)) { |
238 | node->object = node->object->common.next_object; | 238 | node->object = node->object->common.next_object; |
239 | } | 239 | } |
240 | } | ||
241 | 240 | ||
242 | /* | 241 | /* |
243 | * Detach the object from any data objects (which are still held by | 242 | * Detach the object from any data objects (which are still held by |
244 | * the namespace node) | 243 | * the namespace node) |
245 | */ | 244 | */ |
246 | 245 | if (obj_desc->common.next_object && | |
247 | if (obj_desc->common.next_object && | 246 | ((obj_desc->common.next_object)->common.type == |
248 | ((obj_desc->common.next_object)->common.type == | 247 | ACPI_TYPE_LOCAL_DATA)) { |
249 | ACPI_TYPE_LOCAL_DATA)) { | 248 | obj_desc->common.next_object = NULL; |
250 | obj_desc->common.next_object = NULL; | 249 | } |
251 | } | 250 | } |
252 | 251 | ||
253 | /* Reset the node type to untyped */ | 252 | /* Reset the node type to untyped */ |