diff options
author | Lv Zheng <lv.zheng@intel.com> | 2016-02-19 07:16:56 +0100 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-02-24 14:14:49 +0100 |
commit | cc82f18e8ccdd0968d90bcd5835684566f75598b (patch) | |
tree | e726222f1fe95248c99b8ddb7c1e870814a50ba9 /drivers/acpi/acpica/utxfinit.c | |
parent | ACPICA: ACPI 6.0/iASL: Add support for the External AML opcode (diff) | |
download | linux-cc82f18e8ccdd0968d90bcd5835684566f75598b.tar.xz linux-cc82f18e8ccdd0968d90bcd5835684566f75598b.zip |
ACPICA: Tables: make default region accessible during the table load
ACPICA commit 016b2a0917cca9cf0d40c38a1541017d9cf569dd
It is proven that the default regions should be accessible during the
table loading in order to execute module level AML code.
This patch moves default region handler installation code earlier in
order to make this happen.
Note that by putting the code here, we actually allow OSPMs to override
default region handlers between acpi_initialize_subsystem() and
acpi_load_tables(), without the need to introduce region handler override
mechanism in acpi_install_address_space_handler(). OSPMs are also couraged
to check acpi_install_address_space_handler() return value to determine if
acpi_remove_address_space_handler() should be invoked before installing new
address space handler. Lv Zheng.
Link: https://github.com/acpica/acpica/commit/016b2a09
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/acpica/utxfinit.c')
-rw-r--r-- | drivers/acpi/acpica/utxfinit.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/acpi/acpica/utxfinit.c b/drivers/acpi/acpica/utxfinit.c index 721b87cce908..e1ffd7a125bb 100644 --- a/drivers/acpi/acpica/utxfinit.c +++ b/drivers/acpi/acpica/utxfinit.c @@ -163,11 +163,13 @@ acpi_status __init acpi_enable_subsystem(u32 flags) * installed before any AML code can be executed, especially any * module-level code (11/2015). */ - status = acpi_ev_install_region_handlers(); - if (ACPI_FAILURE(status)) { - ACPI_EXCEPTION((AE_INFO, status, - "During Region initialization")); - return_ACPI_STATUS(status); + if (!acpi_gbl_group_module_level_code) { + status = acpi_ev_install_region_handlers(); + if (ACPI_FAILURE(status)) { + ACPI_EXCEPTION((AE_INFO, status, + "During Region initialization")); + return_ACPI_STATUS(status); + } } #if (!ACPI_REDUCED_HARDWARE) |