From: James Morse james.morse@arm.com
mainline inclusion from mainline-v6.8-rc1 commit ca00f7d999a61383c3e5b2c66537a8e769dd7327 category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I8XMTL CVE: NA
----------------------------------
loongarch, mips, parisc, riscv and sh all print a warning if register_cpu() returns an error. Architectures that use GENERIC_CPU_DEVICES call panic() instead.
Errors in this path indicate something is wrong with the firmware description of the platform, but the kernel is able to keep running.
Downgrade this to a warning to make it easier to debug this issue.
This will allow architectures that switching over to GENERIC_CPU_DEVICES to drop their warning, but keep the existing behaviour.
Signed-off-by: James Morse james.morse@arm.com Reviewed-by: "Russell King (Oracle)" rmk+kernel@armlinux.org.uk Reviewed-by: Shaoqin Huang shahuang@redhat.com Signed-off-by: "Russell King (Oracle)" rmk+kernel@armlinux.org.uk Reviewed-by: Gavin Shan gshan@redhat.com Reviewed-by: Jonathan Cameron Jonathan.Cameron@huawei.com Reviewed-by: Thomas Gleixner tglx@linutronix.de Link: https://lore.kernel.org/r/E1r5R3W-00CszU-GM@rmk-PC.armlinux.org.uk Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org Signed-off-by: liwei liwei728@huawei.com --- drivers/base/cpu.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c index f12f3bc4a6ca..47de0f140ba6 100644 --- a/drivers/base/cpu.c +++ b/drivers/base/cpu.c @@ -551,14 +551,15 @@ void __weak arch_unregister_cpu(int num)
static void __init cpu_dev_register_generic(void) { - int i; + int i, ret;
if (!IS_ENABLED(CONFIG_GENERIC_CPU_DEVICES)) return;
for_each_present_cpu(i) { - if (arch_register_cpu(i)) - panic("Failed to register CPU device"); + ret = arch_register_cpu(i); + if (ret) + pr_warn("register_cpu %d failed (%d)\n", i, ret); } }