ACPI firmware can trigger the events to add and remove CPUs, but the OS may not support this.
Print a warning when this happens.
This gives early warning on arm64 systems that don't support CONFIG_ACPI_HOTPLUG_PRESENT_CPU, as making CPUs not present has side effects for other parts of the system.
Signed-off-by: James Morse james.morse@arm.com --- arch/loongarch/include/asm/cpu.h | 2 +- drivers/acpi/acpi_processor.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/arch/loongarch/include/asm/cpu.h b/arch/loongarch/include/asm/cpu.h index ee5703fa4121..1e2c7c61dbea 100644 --- a/arch/loongarch/include/asm/cpu.h +++ b/arch/loongarch/include/asm/cpu.h @@ -126,7 +126,7 @@ enum cpu_type_enum {
#if !defined(__ASSEMBLY__) #ifdef CONFIG_HOTPLUG_CPU -void arch_unregister_cpu(int num); +extern void arch_unregister_cpu(int); #endif #endif /* ! __ASSEMBLY__ */
diff --git a/drivers/acpi/acpi_processor.c b/drivers/acpi/acpi_processor.c index 66b695ca7945..1bd6e4b8ab66 100644 --- a/drivers/acpi/acpi_processor.c +++ b/drivers/acpi/acpi_processor.c @@ -155,8 +155,10 @@ static int acpi_processor_make_present(struct acpi_processor *pr) acpi_status status; int ret;
- if (!IS_ENABLED(CONFIG_ACPI_HOTPLUG_PRESENT_CPU)) + if (!IS_ENABLED(CONFIG_ACPI_HOTPLUG_PRESENT_CPU)) { + pr_err_once("Changing CPU present bit is not supported"); return -ENODEV; + }
if (invalid_phys_cpuid(pr->phys_id)) return -ENODEV; @@ -415,8 +417,10 @@ static void acpi_processor_make_not_present(struct acpi_device *device) { struct acpi_processor *pr;
- if (!IS_ENABLED(CONFIG_ACPI_HOTPLUG_PRESENT_CPU)) + if (!IS_ENABLED(CONFIG_ACPI_HOTPLUG_PRESENT_CPU)) { + pr_err_once("Changing CPU present bit is not supported"); return; + }
pr = acpi_driver_data(device); if (pr->id >= nr_cpu_ids)