aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/acpica/evrgnini.c
diff options
context:
space:
mode:
authorLv Zheng <zetalog@gmail.com>2016-10-26 15:42:01 +0800
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-10-29 01:57:43 +0200
commit8633db6b027952449e155a316f4ae3a530bbe18f (patch)
tree4e190d0de7e971105a5d3960c3f56a4d1e32ec57 /drivers/acpi/acpica/evrgnini.c
parentACPICA: Dispatcher: Fix an unbalanced lock exit path in acpi_ds_auto_serialize_method() (diff)
downloadlinux-dev-8633db6b027952449e155a316f4ae3a530bbe18f.tar.xz
linux-dev-8633db6b027952449e155a316f4ae3a530bbe18f.zip
ACPICA: Dispatcher: Fix interpreter locking around acpi_ev_initialize_region()
In the code path of acpi_ev_initialize_region(), there is namespace modification code unlocked. This patch tunes the code to make sure such modification are always locked. Fixes: 74f51b80a0c4 (ACPICA: Namespace: Fix dynamic table loading issues) Tested-by: Imre Deak <imre.deak@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/evrgnini.c')
-rw-r--r--drivers/acpi/acpica/evrgnini.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/acpi/acpica/evrgnini.c b/drivers/acpi/acpica/evrgnini.c
index 3843f1fc5dbb..75ddd160a716 100644
--- a/drivers/acpi/acpica/evrgnini.c
+++ b/drivers/acpi/acpica/evrgnini.c
@@ -45,6 +45,7 @@
#include "accommon.h"
#include "acevents.h"
#include "acnamesp.h"
+#include "acinterp.h"
#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evrgnini")
@@ -597,9 +598,11 @@ acpi_ev_initialize_region(union acpi_operand_object *region_obj,
}
}
+ acpi_ex_exit_interpreter();
status =
acpi_ev_execute_reg_method(region_obj,
ACPI_REG_CONNECT);
+ acpi_ex_enter_interpreter();
if (acpi_ns_locked) {
status =