powerpc/cpuhp: BUG -> WARN conversion in offline path
authorNathan Lynch <nathanl@linux.ibm.com>
Mon, 27 Sep 2021 20:19:31 +0000 (15:19 -0500)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 8 Oct 2021 13:16:00 +0000 (00:16 +1100)
If, due to bugs elsewhere, we get into unregister_cpu_online() with a CPU
that isn't marked hotpluggable, we can emit a warning and return an
appropriate error instead of crashing.

Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210927201933.76786-3-nathanl@linux.ibm.com
arch/powerpc/kernel/sysfs.c

index defecb3..08d8072 100644 (file)
@@ -928,7 +928,8 @@ static int unregister_cpu_online(unsigned int cpu)
        struct device_attribute *attrs, *pmc_attrs;
        int i, nattrs;
 
-       BUG_ON(!c->hotpluggable);
+       if (WARN_RATELIMIT(!c->hotpluggable, "cpu %d can't be offlined\n", cpu))
+               return -EBUSY;
 
 #ifdef CONFIG_PPC64
        if (cpu_has_feature(CPU_FTR_SMT))