Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1392823

[PATCH 4.5 107/200] ACPICA / Interpreter: Fix a regression triggered because of wrong Linux ECDT support

From Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Newsgroups linux.kernel
Subject [PATCH 4.5 107/200] ACPICA / Interpreter: Fix a regression triggered because of wrong Linux ECDT support
Date 2016-05-03 03:20 +0200
Message-ID <ruxaj-6BA-49@gated-at.bofh.it> (permalink)
References <ruwxz-5Wx-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


4.5-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Lv Zheng <lv.zheng@intel.com>

commit 5508df89756f8378024828e185724a9bd2348985 upstream.

It is reported that the following commit triggers regressions:
 Linux commit: efaed9be998b5ae0afb7458e057e5f4402b43fa0
 ACPICA commit: 31178590dde82368fdb0f6b0e466b6c0add96c57
 Subject: ACPICA: Events: Enhance acpi_ev_execute_reg_method() to
          ensure no _REG evaluations can happen during OS early boot
          stages

This is because that the ECDT support is not corrected in Linux, and Linux
requires to execute _REG for ECDT (though this sounds so wrong), we need to
ensure acpi_gbl_namespace_initialized is set before ECDT probing in order
for _REG to be executed. Since we have to move
"acpi_gbl_namespace_initialized = TRUE" to the initialization step
happening before ECDT probing, acpi_load_tables() is the best candidate for
now. Thus this patch fixes the regression by doing so.

But if the ECDT support is fixed, Linux will not execute _REG for ECDT, and
ECDT probing will happen before acpi_load_tables(). At that time, we still
want to ensure acpi_gbl_namespace_initialized is set after executing
acpi_ns_initialize_objects() (under the condition of
acpi_gbl_group_module_level_code = FALSE), this patch also moves
acpi_ns_initialize_objects() to acpi_load_tables() accordingly.

Since acpi_ns_initialize_objects() doesn't seem to be skippable, this
patch also removes ACPI_NO_OBJECT_INIT for the one invoked in
acpi_load_tables(). And since the default region handlers should always be
installed before loading the tables, this patch also removes useless
acpi_gbl_group_module_level_code check accordingly. Reported by Chris
Bainbridge, Fixed by Lv Zheng.

Fixes: efaed9be998b (ACPICA: Events: Enhance acpi_ev_execute_reg_method() to ensure no _REG evaluations can happen during OS early boot stages)
Reported-and-tested-by: Chris Bainbridge <chris.bainbridge@gmail.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/acpi/acpica/nsinit.c   |    2 ++
 drivers/acpi/acpica/tbxfload.c |   14 ++++++++++++++
 drivers/acpi/acpica/utxfinit.c |   25 +++++++++++--------------
 3 files changed, 27 insertions(+), 14 deletions(-)

--- a/drivers/acpi/acpica/nsinit.c
+++ b/drivers/acpi/acpica/nsinit.c
@@ -83,6 +83,8 @@ acpi_status acpi_ns_initialize_objects(v
 
 	ACPI_FUNCTION_TRACE(ns_initialize_objects);
 
+	ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
+			  "[Init] Completing Initialization of ACPI Objects\n"));
 	ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
 			  "**** Starting initialization of namespace objects ****\n"));
 	ACPI_DEBUG_PRINT_RAW((ACPI_DB_INIT,
--- a/drivers/acpi/acpica/tbxfload.c
+++ b/drivers/acpi/acpica/tbxfload.c
@@ -83,6 +83,20 @@ acpi_status __init acpi_load_tables(void
 				"While loading namespace from ACPI tables"));
 	}
 
+	if (!acpi_gbl_group_module_level_code) {
+		/*
+		 * Initialize the objects that remain uninitialized. This
+		 * runs the executable AML that may be part of the
+		 * declaration of these objects:
+		 * operation_regions, buffer_fields, Buffers, and Packages.
+		 */
+		status = acpi_ns_initialize_objects();
+		if (ACPI_FAILURE(status)) {
+			return_ACPI_STATUS(status);
+		}
+	}
+
+	acpi_gbl_reg_methods_enabled = TRUE;
 	return_ACPI_STATUS(status);
 }
 
--- a/drivers/acpi/acpica/utxfinit.c
+++ b/drivers/acpi/acpica/utxfinit.c
@@ -267,7 +267,6 @@ acpi_status __init acpi_initialize_objec
 	 * initialized, even if they contain executable AML (see the call to
 	 * acpi_ns_initialize_objects below).
 	 */
-	acpi_gbl_reg_methods_enabled = TRUE;
 	if (!(flags & ACPI_NO_ADDRESS_SPACE_INIT)) {
 		ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
 				  "[Init] Executing _REG OpRegion methods\n"));
@@ -299,20 +298,18 @@ acpi_status __init acpi_initialize_objec
 	 */
 	if (acpi_gbl_group_module_level_code) {
 		acpi_ns_exec_module_code_list();
-	}
 
-	/*
-	 * Initialize the objects that remain uninitialized. This runs the
-	 * executable AML that may be part of the declaration of these objects:
-	 * operation_regions, buffer_fields, Buffers, and Packages.
-	 */
-	if (!(flags & ACPI_NO_OBJECT_INIT)) {
-		ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
-				  "[Init] Completing Initialization of ACPI Objects\n"));
-
-		status = acpi_ns_initialize_objects();
-		if (ACPI_FAILURE(status)) {
-			return_ACPI_STATUS(status);
+		/*
+		 * Initialize the objects that remain uninitialized. This
+		 * runs the executable AML that may be part of the
+		 * declaration of these objects:
+		 * operation_regions, buffer_fields, Buffers, and Packages.
+		 */
+		if (!(flags & ACPI_NO_OBJECT_INIT)) {
+			status = acpi_ns_initialize_objects();
+			if (ACPI_FAILURE(status)) {
+				return_ACPI_STATUS(status);
+			}
 		}
 	}
 

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 4.5 000/200] 4.5.3-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 064/200] powerpc: scan_features() updates incorrect bits for REAL_LE Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 048/200] drm/nouveau/core: use vzalloc for allocating ramht Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 073/200] pinctrl: single: Fix pcs_parse_bits_in_pinctrl_entry to use __ffs than ffs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 006/200] kvm: x86: do not leak guest xcr0 into host interrupt handlers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 117/200] [media] videobuf2-core: Check user space planes array in dqbuf Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 067/200] nl80211: check netlink protocol in socket release notification Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 114/200] ASoC: rt5640: Correct the digital interface data select Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 120/200] cxl: Keep IRQ mappings on context teardown Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 066/200] powerpc: Update TM user feature bits in scan_features() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 116/200] [media] media: vb2: Fix regression on poll() for RW mode Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 062/200] crypto: talitos - fix crash in talitos_cra_init() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 096/200] drm/amdkfd: uninitialized variable in dbgdev_wave_control_set_registers() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 070/200] Input: pmic8xxx-pwrkey - fix algorithm for converting trigger delay Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 118/200] [media] videobuf2-v4l2: Verify planes array in buffer dequeueing Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
    Re: [PATCH 4.5 118/200] [media] videobuf2-v4l2: Verify planes array  in buffer dequeueing Mauro Carvalho Chehab <mchehab@osg.samsung.com> - 2016-05-11 18:40 +0200
  [PATCH 4.5 119/200] [media] v4l2-dv-timings.h: fix polarity for 4k formats Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 107/200] ACPICA / Interpreter: Fix a regression triggered because of wrong Linux ECDT support Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 112/200] ASoC: ssm4567: Reset device before regcache_sync() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 061/200] crypto: sha1-mb - use corrcet pointer while completing jobs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 106/200] i2c: exynos5: Fix possible ABBA deadlock by keeping I2C clock prepared Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 047/200] futex: Acknowledge a new waiter in counter before plist Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 056/200] s390/pci: add extra padding to function measurement block Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 057/200] iwlwifi: pcie: lower the debug level for RSA semaphore access Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 105/200] i2c: cpm: Fix build break due to incompatible pointer types Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 063/200] crypto: talitos - fix AEAD tcrypt tests Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 009/200] ARM: dts: am43xx: fix edma memcpy channel allocation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 115/200] [media] vb2-memops: Fix over allocation of frame vectors Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 075/200] iommu/dma: Restore scatterlist offsets correctly Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:20 +0200
  [PATCH 4.5 042/200] ALSA: pcxhr: Fix missing mutex unlock Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 022/200] usb: gadget: f_fs: Fix use-after-free Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 025/200] lib: lz4: fixed zram with lz4 on big endian machines Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 004/200] efi/arm64: Dont apply MEMBLOCK_NOMAP to UEFI memory map mapping Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 024/200] dm cache metadata: fix cmd_read_lock() acquiring write lock Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 029/200] dmaengine: hsu: correct residue calculation of active descriptor Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 032/200] dmaengine: pxa_dma: fix the maximum requestor line Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 015/200] xhci: resume USB 3 roothub first Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 028/200] dmaengine: hsu: correct use of channel status register Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 016/200] usb: host: xhci: add a new quirk XHCI_NO_64BIT_SUPPORT Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 014/200] usb: xhci: applying XHCI_PME_STUCK_QUIRK to Intel BXT B0 host Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 005/200] x86/mce: Avoid using object after free in genpool Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 002/200] block: partition: initialize percpuref before sending out KOBJ_ADD Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 031/200] dmaengine: edma: Remove dynamic TPTC power management feature Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 040/200] ALSA: hda - Keep powering up ADCs on Cirrus codecs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 033/200] mtd: nand: pxa3xx_nand: fix dmaengine initialization Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 026/200] debugfs: Make automount point inodes permanently empty Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 044/200] ALSA: hda - Update BCLK also at hotplug for i915 HSW/BDW Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 011/200] ARM: OMAP2: Fix up interconnect barrier initialization for DRA7 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 018/200] usb: xhci: fix wild pointers in xhci_mem_cleanup Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 030/200] dmaengine: omap-dma: Fix polled channel completion detection and handling Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 023/200] dm cache metadata: fix READ_LOCK macros and cleanup WRITE_LOCK macros Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 043/200] ALSA: hda - Add dock support for ThinkPad X260 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 027/200] dmaengine: dw: fix master selection Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 001/200] mmc: block: Use the mmc host device index as the mmcblk device index Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:30 +0200
  [PATCH 4.5 010/200] ARM: mvebu: Correct unit address for linksys Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 03:40 +0200
  Re: [PATCH 4.5 000/200] 4.5.3-stable review Guenter Roeck <linux@roeck-us.net> - 2016-05-03 09:50 +0200
    Re: [PATCH 4.5 000/200] 4.5.3-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 20:30 +0200
      Re: [PATCH 4.5 000/200] 4.5.3-stable review Guenter Roeck <linux@roeck-us.net> - 2016-05-04 04:30 +0200
  Re: [PATCH 4.5 000/200] 4.5.3-stable review Shuah Khan <shuahkh@osg.samsung.com> - 2016-05-03 17:00 +0200
    Re: [PATCH 4.5 000/200] 4.5.3-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-05-03 20:20 +0200

csiph-web