Re: [PATCH v7 03/16] ACPI: processor: Drop duplicated check on _STA (enabled + present)

From: Hanjun Guo
Date: Tue Apr 23 2024 - 07:14:02 EST


On 2024/4/23 17:31, Rafael J. Wysocki wrote:
On Tue, Apr 23, 2024 at 8:49 AM Hanjun Guo <guohanjun@xxxxxxxxxx> wrote:

On 2024/4/18 21:53, Jonathan Cameron wrote:
The ACPI bus scan will only result in acpi_processor_add() being called
if _STA has already been checked and the result is that the
processor is enabled and present. Hence drop this additional check.

Suggested-by: Rafael J. Wysocki <rafael@xxxxxxxxxx>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>

---
v7: No change
v6: New patch to drop this unnecessary code. Now I think we only
need to explicitly read STA to print a warning in the ARM64
arch_unregister_cpu() path where we want to know if the
present bit has been unset as well.
---
drivers/acpi/acpi_processor.c | 6 ------
1 file changed, 6 deletions(-)

diff --git a/drivers/acpi/acpi_processor.c b/drivers/acpi/acpi_processor.c
index 7fc924aeeed0..ba0a6f0ac841 100644
--- a/drivers/acpi/acpi_processor.c
+++ b/drivers/acpi/acpi_processor.c
@@ -186,17 +186,11 @@ static void __init acpi_pcc_cpufreq_init(void) {}
#ifdef CONFIG_ACPI_HOTPLUG_CPU
static int acpi_processor_hotadd_init(struct acpi_processor *pr)
{
- unsigned long long sta;
- acpi_status status;
int ret;

if (invalid_phys_cpuid(pr->phys_id))
return -ENODEV;

- status = acpi_evaluate_integer(pr->handle, "_STA", NULL, &sta);
- if (ACPI_FAILURE(status) || !(sta & ACPI_STA_DEVICE_PRESENT))
- return -ENODEV;
-
cpu_maps_update_begin();
cpus_write_lock();

Since the status bits were checked before acpi_processor_add() being
called, do we need to remove the if (!acpi_device_is_enabled(device))
check in acpi_processor_add() as well?

No, because its caller only checks the present bit. The function
itself checks the enabled bit.

Thanks for the pointer, I can see the detail in the acpi_bus_attach()
now,

Reviewed-by: Hanjun Guo <guohanjun@xxxxxxxxxx>

Thanks
Hanjun