>+ cpu = get_cpu();
>+ mask &= (1UL << cpu);
>+ num_cpus = hweight32(mask);
I guess you mean
mask &= ~(1UL << cpu);
or else num_cpus is always either 0 or 1 ...
>+ for (i = 0; i < NR_CPUS; i++) {
>+ if (cpu_online(i) && ((1UL << cpu) && mask))
This should be
if (cpu_online(i) && ((1UL << i) & mask))
or else the message is sent to all online CPUs anyway ...
Bye,
Ulrich
-- Dr. Ulrich Weigand weigand@informatik.uni-erlangen.de - 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/