| Submitter | Milton Miller |
|---|---|
| Date | May 11, 2011, 5:28 a.m. |
| Message ID | <97d94cc156d8e8c199ab5d057d3375e6403aecf0.1305092637.git.miltonm@bga.com> |
| Download | mbox | patch |
| Permalink | /patch/95107/ |
| State | Accepted |
| Commit | ebc04215108c124cb4f519d687a8e27a0d16a4aa |
| Delegated to: | Benjamin Herrenschmidt |
| Headers | show |
Comments
Patch
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 824a94f..a93da80 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c @@ -631,7 +631,7 @@ static inline u32 mpic_physmask(u32 cpumask) int i; u32 mask = 0; - for (i = 0; i < NR_CPUS; ++i, cpumask >>= 1) + for (i = 0; i < min(32, NR_CPUS); ++i, cpumask >>= 1) mask |= (cpumask & 1) << get_hard_smp_processor_id(i); return mask; }
mpic_physmask was looping NR_CPUS times over a mask that was passed as a u32. Since mpic is architecturaly limited to 32 physical cpus, clamp the logical cpus to 32 when compiling (we could also clamp at runtime to nr_cpu_ids). Signed-off-by: Milton Miller <miltonm@bga.com> --- arch/powerpc/sysdev/mpic.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)