Skip to content

Commit

Permalink
[POWERPC] Fix thinko in cpu_thread_mask_to_cores()
Browse files Browse the repository at this point in the history
The function cpu_thread_mask_to_cores() which returns a cpumask
of one and only one thread enabled for a given core has a bug
as it's shifting things in the wrong direction.

Note: The implementation is still sub-optimal in the sense that
for a given core, the thread set in the result may not be any of
the threads set in the input, which can lead to more IPIs then
strictly necessary, but it isn't incorrect per-se.  I'll improve
that later.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Benjamin Herrenschmidt authored and Paul Mackerras committed Feb 26, 2008
1 parent 5053037 commit 6a2d322
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion include/asm-powerpc/cputhreads.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ static inline cpumask_t cpu_thread_mask_to_cores(cpumask_t threads)

res = CPU_MASK_NONE;
for (i = 0; i < NR_CPUS; i += threads_per_core) {
cpus_shift_right(tmp, threads_core_mask, i);
cpus_shift_left(tmp, threads_core_mask, i);
if (cpus_intersects(threads, tmp))
cpu_set(i, res);
}
Expand Down

0 comments on commit 6a2d322

Please sign in to comment.