RE: [PATCH 4.14 009/222] ACPICA: AML interpreter: add region addresses in global list during initialization

Schmauss, Erik
2018-11-12T17:16:24Z

> -----Original Message-----
> From: Greg Kroah-Hartman [mailto:gregkh@linuxfoundation.org]
> Sent: Sunday, November 11, 2018 2:22 PM
> To: linux-kernel@vger.kernel.org
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>;
> stable@vger.kernel.org; Jean-Marc Lenoir <archlinux@jihemel.com>;
> Schmauss, Erik <erik.schmauss@intel.com>; Wysocki, Rafael J
> <rafael.j.wysocki@intel.com>
> Subject: [PATCH 4.14 009/222] ACPICA: AML interpreter: add region
> addresses in global list during initialization
>
Hi Greg,

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

This patch is only meant to be added for kernels that are 4.17 or later.

Please drop this from kernel 4.16 or older.

Thanks,
Erik
>
> ------------------
>
> From: Erik Schmauss <erik.schmauss@intel.com>
>
> commit 4abb951b73ff0a8a979113ef185651aa3c8da19b upstream.
>
> 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>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>
> ---
> drivers/acpi/acpica/dsopcode.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> --- a/drivers/acpi/acpica/dsopcode.c
> +++ b/drivers/acpi/acpica/dsopcode.c
> @@ -451,6 +451,10 @@ acpi_ds_eval_region_operands(struct acpi
> 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;
>