How about this version (gcc-3.2 generates the same amount of assembler):
int find(int this_cpu)
{
int i;
for ( i = (this_cpu+1)%smp_num_cpus;
i != this_cpu;
i = (i+1)%smp_num_cpus )
{
int physical = cpu_logical_map(i);
int sibling = cpu_sibling_map[physical];
if (idle_cpu(physical) && idle_cpu(sibling))
return physical;
}
return -1;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/