On Wed, Aug 17, 2022 at 6:08 AM Punit Agrawal <punit.agrawal@xxxxxxxxxxxxx> wrote: > > No functional change intended. ? > - orig_cpu = cpu = raw_smp_processor_id(); > - while (1) { > + for_each_cpu_wrap(cpu, cpu_possible_mask, raw_smp_processor_id()) { > struct pcpu_freelist_head *head; > > head = per_cpu_ptr(s->freelist, cpu); > @@ -68,15 +67,10 @@ static inline void ___pcpu_freelist_push_nmi(struct pcpu_freelist *s, > raw_spin_unlock(&head->lock); > return; > } > - cpu = cpumask_next(cpu, cpu_possible_mask); > - if (cpu >= nr_cpu_ids) > - cpu = 0; > - > - /* cannot lock any per cpu lock, try extralist */ > - if (cpu == orig_cpu && > - pcpu_freelist_try_push_extra(s, node)) > - return; > } > + > + /* cannot lock any per cpu lock, try extralist */ > + pcpu_freelist_try_push_extra(s, node); This is obviously not equivalent!