]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ACPICA: AML interpreter: add region addresses in global list during initialization
authorErik Schmauss <erik.schmauss@intel.com>
Wed, 17 Oct 2018 21:09:35 +0000 (14:09 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 18 Oct 2018 07:17:04 +0000 (09:17 +0200)
The table load process omitted adding the operation region address
range to the global list. This omission is problematic because the OS
queries the global list to check for address range conflicts before
deciding which drivers to load. This commit may result in warning
messages that look like the following:

[    7.871761] ACPI Warning: system_IO range 0x00000428-0x0000042F conflicts with op_region 0x00000400-0x0000047F (\PMIO) (20180531/utaddress-213)
[    7.871769] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver

However, these messages do not signify regressions. It is a result of
properly adding address ranges within the global address list.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=200011
Tested-by: Jean-Marc Lenoir <archlinux@jihemel.com>
Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
Cc: All applicable <stable@vger.kernel.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpica/dsopcode.c

index e9fb0bf3c8d250662b14e22cb5ff12ba3ac238d2..78f9de260d5f1d1e5c60c4cbcafd0ad86e035974 100644 (file)
@@ -417,6 +417,10 @@ acpi_ds_eval_region_operands(struct acpi_walk_state *walk_state,
                          ACPI_FORMAT_UINT64(obj_desc->region.address),
                          obj_desc->region.length));
 
+       status = acpi_ut_add_address_range(obj_desc->region.space_id,
+                                          obj_desc->region.address,
+                                          obj_desc->region.length, node);
+
        /* Now the address and length are valid for this opregion */
 
        obj_desc->region.flags |= AOPOBJ_DATA_VALID;