RE: [PATCH 4.19 025/361] ACPICA: AML interpreter: add region addresses in global list during initialization

Schmauss, Erik
2018-11-12T19:01:55Z

> -----Original Message-----
> From: Holger Hoffstätte [mailto:holger@applied-asynchrony.com]
> Sent: Monday, November 12, 2018 10:31 AM
> To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>; linux-
> kernel@vger.kernel.org
> Cc: 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: Re: [PATCH 4.19 025/361] ACPICA: AML interpreter: add region
> addresses in global list during initialization
>
> On 11/11/18 11:16 PM, Greg Kroah-Hartman wrote:
> > 4.19-stable review patch. If anyone has any objections, please let me
> know.
>

Hi,

> As probably expected this patch causes problems. In my case one server can
> no longer load the nct6775 hwmon module, which means the fan cannot be
> monitored, and therefore my monitoring system promptly starts spamming
> me with alerts that my fan has failed - which is of course not true.
>
> --snip--
> Nov 12 18:08:56 tux kernel: nct6775: Found NCT6776D/F or compatible chip at
> 0x2e:0x290 Nov 12 18:08:56 tux kernel: ACPI Warning: SystemIO range
> 0x0000000000000295-0x0000000000000296 conflicts with OpRegion
> 0x0000000000000290-0x Nov 12 18:08:56 tux kernel: ACPI: If an ACPI driver is
> available for this device, you should use it instead of the native driver
> --snip--
>
> This is certainly caused by my old BIOS and its broken ACPI implementation,
> however since it's working perfectly fine otherwise I see no reason to
> replace it. That being said, I must be able to monitor my fan, so for now
> reverting the patch immediately "fixed" the problem for me - the fan entries
> appeared in sysfs again after successfully loading the module.
>
> Idea, workarounds or patches welcome.

Is there a firmware update available for this machine? If so, you may want to do
a firmware update.

Also, what is the behavior in kernels 4.16 or older?

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
> > @@ -417,6 +417,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;
> >
> >
> >