]>
Commit | Line | Data |
---|---|---|
63952b1e GKH |
1 | From 4abb951b73ff0a8a979113ef185651aa3c8da19b Mon Sep 17 00:00:00 2001 |
2 | From: Erik Schmauss <erik.schmauss@intel.com> | |
3 | Date: Wed, 17 Oct 2018 14:09:35 -0700 | |
4 | Subject: ACPICA: AML interpreter: add region addresses in global list during initialization | |
5 | ||
6 | From: Erik Schmauss <erik.schmauss@intel.com> | |
7 | ||
8 | commit 4abb951b73ff0a8a979113ef185651aa3c8da19b upstream. | |
9 | ||
10 | The table load process omitted adding the operation region address | |
11 | range to the global list. This omission is problematic because the OS | |
12 | queries the global list to check for address range conflicts before | |
13 | deciding which drivers to load. This commit may result in warning | |
14 | messages that look like the following: | |
15 | ||
16 | [ 7.871761] ACPI Warning: system_IO range 0x00000428-0x0000042F conflicts with op_region 0x00000400-0x0000047F (\PMIO) (20180531/utaddress-213) | |
17 | [ 7.871769] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver | |
18 | ||
19 | However, these messages do not signify regressions. It is a result of | |
20 | properly adding address ranges within the global address list. | |
21 | ||
22 | Link: https://bugzilla.kernel.org/show_bug.cgi?id=200011 | |
23 | Tested-by: Jean-Marc Lenoir <archlinux@jihemel.com> | |
24 | Signed-off-by: Erik Schmauss <erik.schmauss@intel.com> | |
25 | Cc: All applicable <stable@vger.kernel.org> | |
26 | Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> | |
27 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
28 | ||
29 | --- | |
30 | drivers/acpi/acpica/dsopcode.c | 4 ++++ | |
31 | 1 file changed, 4 insertions(+) | |
32 | ||
33 | --- a/drivers/acpi/acpica/dsopcode.c | |
34 | +++ b/drivers/acpi/acpica/dsopcode.c | |
35 | @@ -523,6 +523,10 @@ acpi_ds_eval_table_region_operands(struc | |
36 | ACPI_FORMAT_UINT64(obj_desc->region.address), | |
37 | obj_desc->region.length)); | |
38 | ||
39 | + status = acpi_ut_add_address_range(obj_desc->region.space_id, | |
40 | + obj_desc->region.address, | |
41 | + obj_desc->region.length, node); | |
42 | + | |
43 | /* Now the address and length are valid for this opregion */ | |
44 | ||
45 | obj_desc->region.flags |= AOPOBJ_DATA_VALID; |