Re: [PATCH v2 4/5] ACPI: scan: Rework Device Check and Bus Check notification handling

Jonathan Cameron
2024-02-27T09:39:52Z

On Mon, 26 Feb 2024 17:45:11 +0100
"Rafael J. Wysocki" <rjw@rjwysocki.net> wrote:

> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> The underlying problem is the handling of the enabled bit in device
> status (bit 1 of _STA return value) which is required by the ACPI
> specification to be observed in addition to the present bit (bit 0
> of _STA return value) [1], but Linux does not observe it.
>
> Since Linux has not looked at that bit for a long time, it is generally
> risky to start obseving it in all device enumeration cases, especially
> at the system initialization time, but it can be observed when the
> kernel receives a Bus Check or Device Check notification indicating a
> change in device configuration. In those cases, seeing the enabled bit
> clear may be regarded as an indication that the device at hand should
> not be used any more.
>
> For this reason, rework the handling of Device Check and Bus Check
> notifications in the ACPI core device enumeration code in the
> following way:
>
> 1. Rename acpi_bus_trim_one() to acpi_scan_check_and_detach() and make
> it check device status if its second argument is not NULL, in which
> case it will detach scan handlers or ACPI drivers from devices whose
> _STA returns the enabled bit clear.

New name is much better - thanks!

>
> 2. Make acpi_scan_device_check() and acpi_scan_bus_check() invoke
> acpi_scan_check_and_detach() with a non-NULL second argument
> unconditionally, so scan handlers and ACPI drivers are detached
> from the target device and its ancestors if their _STA returns the
> enabled bit clear.
>
> Link: https://uefi.org/specs/ACPI/6.5/06_Device_Configuration.html#sta-device-status # [1]
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Looks good.
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>