2024-02-21 20:04:53

by Rafael J. Wysocki

[permalink] [raw]
Subject: [PATCH v1 4/4] ACPI: scan: Make acpi_processor_add() check the device enabled bit

From: Rafael J. Wysocki <[email protected]>

Modify acpi_processor_add() return an error if _STA returns the enabled
bit clear for the given processor device, so as to avoid using processors
that don't decode their resources, as per the ACPI specification. [1]

Link: https://uefi.org/specs/ACPI/6.5/06_Device_Configuration.html#sta-device-status # [1]
Signed-off-by: Rafael J. Wysocki <[email protected]>
---
drivers/acpi/acpi_processor.c | 3 +++
1 file changed, 3 insertions(+)

Index: linux-pm/drivers/acpi/acpi_processor.c
===================================================================
--- linux-pm.orig/drivers/acpi/acpi_processor.c
+++ linux-pm/drivers/acpi/acpi_processor.c
@@ -381,6 +381,9 @@ static int acpi_processor_add(struct acp
struct device *dev;
int result = 0;

+ if (!acpi_device_is_enabled(device))
+ return -ENODEV;
+
pr = kzalloc(sizeof(struct acpi_processor), GFP_KERNEL);
if (!pr)
return -ENOMEM;





2024-02-22 19:00:31

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v1 4/4] ACPI: scan: Make acpi_processor_add() check the device enabled bit

On Wed, 21 Feb 2024 21:03:17 +0100
"Rafael J. Wysocki" <[email protected]> wrote:

> From: Rafael J. Wysocki <[email protected]>
>
> Modify acpi_processor_add() return an error if _STA returns the enabled
> bit clear for the given processor device, so as to avoid using processors
> that don't decode their resources, as per the ACPI specification. [1]
>
> Link: https://uefi.org/specs/ACPI/6.5/06_Device_Configuration.html#sta-device-status # [1]
> Signed-off-by: Rafael J. Wysocki <[email protected]>

This does the job for us so if you are happier with this approach
that works for me.

Reviewed-by: Jonathan Cameron <[email protected]>

> ---
> drivers/acpi/acpi_processor.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> Index: linux-pm/drivers/acpi/acpi_processor.c
> ===================================================================
> --- linux-pm.orig/drivers/acpi/acpi_processor.c
> +++ linux-pm/drivers/acpi/acpi_processor.c
> @@ -381,6 +381,9 @@ static int acpi_processor_add(struct acp
> struct device *dev;
> int result = 0;
>
> + if (!acpi_device_is_enabled(device))
> + return -ENODEV;
> +
> pr = kzalloc(sizeof(struct acpi_processor), GFP_KERNEL);
> if (!pr)
> return -ENOMEM;
>
>
>