Skip to content

Commit 0e664e9

Browse files
kchuyizhougregkh
authored andcommitted
padata: Remove cpu online check from cpu add and removal
[ Upstream commit 73117ea ] 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> Stable-dep-of: c8c4a29 ("padata: Put CPU offline callback in ONLINE section to allow failure") Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 39024f5 commit 0e664e9

1 file changed

Lines changed: 8 additions & 18 deletions

File tree

kernel/padata.c

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -745,32 +745,22 @@ EXPORT_SYMBOL(padata_set_cpumask);
745745

746746
static int __padata_add_cpu(struct padata_instance *pinst, int cpu)
747747
{
748-
int err = 0;
749-
750-
if (cpumask_test_cpu(cpu, cpu_online_mask)) {
751-
err = padata_replace(pinst);
748+
int err = padata_replace(pinst);
752749

753-
if (padata_validate_cpumask(pinst, pinst->cpumask.pcpu) &&
754-
padata_validate_cpumask(pinst, pinst->cpumask.cbcpu))
755-
__padata_start(pinst);
756-
}
750+
if (padata_validate_cpumask(pinst, pinst->cpumask.pcpu) &&
751+
padata_validate_cpumask(pinst, pinst->cpumask.cbcpu))
752+
__padata_start(pinst);
757753

758754
return err;
759755
}
760756

761757
static int __padata_remove_cpu(struct padata_instance *pinst, int cpu)
762758
{
763-
int err = 0;
764-
765-
if (!cpumask_test_cpu(cpu, cpu_online_mask)) {
766-
if (!padata_validate_cpumask(pinst, pinst->cpumask.pcpu) ||
767-
!padata_validate_cpumask(pinst, pinst->cpumask.cbcpu))
768-
__padata_stop(pinst);
769-
770-
err = padata_replace(pinst);
771-
}
759+
if (!padata_validate_cpumask(pinst, pinst->cpumask.pcpu) ||
760+
!padata_validate_cpumask(pinst, pinst->cpumask.cbcpu))
761+
__padata_stop(pinst);
772762

773-
return err;
763+
return padata_replace(pinst);
774764
}
775765

776766
static inline int pinst_has_cpu(struct padata_instance *pinst, int cpu)

0 commit comments

Comments
 (0)