ACPI: scan: Avoid enumerating devices with clearly invalid _STA values
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 30 Apr 2024 16:02:20 +0000 (18:02 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 30 Apr 2024 19:32:06 +0000 (21:32 +0200)
commitd4aa921eb85a74bf0502eff64f0b9e06fe17081b
treef10d871c0850a18dc14601af4217129de71e1468
parent829b75d4831c487c4408f0b7fc22e74deb0efa3c
ACPI: scan: Avoid enumerating devices with clearly invalid _STA values

The return value of _STA with the "present" bit unset and the "enabled"
bit set is clearly invalid as per the ACPI specification, Section 6.3.7
"_STA (Device Status)", so make the ACPI device enumeration code
disregard devices with such _STA return values.

Also, because this implies that status.enabled will only be set if
status.present is set too, acpi_device_is_enabled() can be modified
to simply return the value of the former.

Link: https://uefi.org/specs/ACPI/6.5/06_Device_Configuration.html#sta-device-status
Link: https://lore.kernel.org/linux-acpi/88179311a503493099028c12ca37d430@huawei.com/
Suggested-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
drivers/acpi/bus.c
drivers/acpi/scan.c