]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
padata: Remove cpu online check from cpu add and removal
authorChuyi Zhou <zhouchuyi@bytedance.com>
Thu, 26 Feb 2026 08:07:03 +0000 (16:07 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 7 Mar 2026 05:12:21 +0000 (14:12 +0900)
During the CPU offline process, the dying CPU is cleared from the
cpu_online_mask in takedown_cpu(). After this step, various CPUHP_*_DEAD
callbacks are executed to perform cleanup jobs for the dead CPU, so this
cpu online check in padata_cpu_dead() is unnecessary.

Similarly, when executing padata_cpu_online() during the
CPUHP_AP_ONLINE_DYN phase, the CPU has already been set in the
cpu_online_mask, the action even occurs earlier than the
CPUHP_AP_ONLINE_IDLE stage.

Remove this unnecessary cpu online check in __padata_add_cpu() and
__padata_remove_cpu().

Signed-off-by: Chuyi Zhou <zhouchuyi@bytedance.com>
Acked-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
kernel/padata.c

index 8657e6e0c224a219b903ac2dbb34f5cf3ee1d64b..9e7cfa5ed55bcf35bed4f4c21d6e10df32b4bcf3 100644 (file)
@@ -732,32 +732,22 @@ EXPORT_SYMBOL(padata_set_cpumask);
 
 static int __padata_add_cpu(struct padata_instance *pinst, int cpu)
 {
-       int err = 0;
-
-       if (cpumask_test_cpu(cpu, cpu_online_mask)) {
-               err = padata_replace(pinst);
+       int err = padata_replace(pinst);
 
-               if (padata_validate_cpumask(pinst, pinst->cpumask.pcpu) &&
-                   padata_validate_cpumask(pinst, pinst->cpumask.cbcpu))
-                       __padata_start(pinst);
-       }
+       if (padata_validate_cpumask(pinst, pinst->cpumask.pcpu) &&
+           padata_validate_cpumask(pinst, pinst->cpumask.cbcpu))
+               __padata_start(pinst);
 
        return err;
 }
 
 static int __padata_remove_cpu(struct padata_instance *pinst, int cpu)
 {
-       int err = 0;
-
-       if (!cpumask_test_cpu(cpu, cpu_online_mask)) {
-               if (!padata_validate_cpumask(pinst, pinst->cpumask.pcpu) ||
-                   !padata_validate_cpumask(pinst, pinst->cpumask.cbcpu))
-                       __padata_stop(pinst);
-
-               err = padata_replace(pinst);
-       }
+       if (!padata_validate_cpumask(pinst, pinst->cpumask.pcpu) ||
+           !padata_validate_cpumask(pinst, pinst->cpumask.cbcpu))
+               __padata_stop(pinst);
 
-       return err;
+       return padata_replace(pinst);
 }
 
 static inline int pinst_has_cpu(struct padata_instance *pinst, int cpu)