mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 04:01:48 -04:00
ACPICA: Events: Fix an issue that region object is re-attached to another scope when it is already attached
ACPICA commit 6ebcb24d3225b6c7715a3ce061c327b4c3a6b76e
The logic in acpi_ev_attach_region() is not correct, it can break address
space handler link. This patch fixes this problem. But be aware that this
fix must be applied along with a region object race issue fix. Lv Zheng.
Link: 6ebcb24d
Signed-off-by: Lv Zheng <[email protected]>
Signed-off-by: Bob Moore <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
This commit is contained in:
parent
2e1beaf6a9
commit
1d65d9a7b6
1 changed files with 6 additions and 7 deletions
|
|
@ -504,6 +504,12 @@ acpi_ev_attach_region(union acpi_operand_object *handler_obj,
|
|||
|
||||
ACPI_FUNCTION_TRACE(ev_attach_region);
|
||||
|
||||
/* Install the region's handler */
|
||||
|
||||
if (region_obj->region.handler) {
|
||||
return_ACPI_STATUS(AE_ALREADY_EXISTS);
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
|
||||
"Adding Region [%4.4s] %p to address handler %p [%s]\n",
|
||||
acpi_ut_get_node_name(region_obj->region.node),
|
||||
|
|
@ -515,13 +521,6 @@ acpi_ev_attach_region(union acpi_operand_object *handler_obj,
|
|||
|
||||
region_obj->region.next = handler_obj->address_space.region_list;
|
||||
handler_obj->address_space.region_list = region_obj;
|
||||
|
||||
/* Install the region's handler */
|
||||
|
||||
if (region_obj->region.handler) {
|
||||
return_ACPI_STATUS(AE_ALREADY_EXISTS);
|
||||
}
|
||||
|
||||
region_obj->region.handler = handler_obj;
|
||||
acpi_ut_add_reference(handler_obj);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue