···170170{171171 void *obj = NULL;172172 unsigned long flags;173173- int i, cpu;173173+ int start, cpu;174174175175 /* disable local irq to avoid preemption & interruption */176176 raw_local_irq_save(flags);177177178178- cpu = raw_smp_processor_id();179179- for (i = 0; i < pool->nr_possible_cpus; i++) {178178+ start = raw_smp_processor_id();179179+ for_each_possible_cpu_wrap(cpu, start) {180180 obj = __objpool_try_get_slot(pool, cpu);181181 if (obj)182182 break;183183- cpu = cpumask_next_wrap(cpu, cpu_possible_mask, -1, 1);184183 }185184 raw_local_irq_restore(flags);186185