]> git.hungrycats.org Git - linux/commitdiff
[PATCH] Fix for more than 256 CPUs
authorAndrew Morton <akpm@osdl.org>
Mon, 29 Dec 2003 13:45:14 +0000 (05:45 -0800)
committerLinus Torvalds <torvalds@home.osdl.org>
Mon, 29 Dec 2003 13:45:14 +0000 (05:45 -0800)
From: Paul Jackson <pj@sgi.com>

The patch is needed to build NR_CPUS > 256.

Without this fix, you get compile errors:
    include/linux/cpumask.h: In function `next_online_cpu':
    include/linux/cpumask.h:56: structure has no member named `val'

include/asm-generic/cpumask_const_value.h
include/asm-i386/mach-default/mach_apic.h
include/linux/cpumask.h

index 7a4caefa4066e4062a924663115a5e462e5cb01a..16ca16d286dc986efc150572abdebcab7a7309af 100644 (file)
@@ -3,7 +3,7 @@
 
 typedef const cpumask_t cpumask_const_t;
 
-#define mk_cpumask_const(map)          ((cpumask_const_t)(map))
+#define mk_cpumask_const(map)          (map)
 #define cpu_isset_const(cpu, map)      cpu_isset(cpu, map)
 #define cpus_and_const(dst,src1,src2)  cpus_and(dst, src1, src2)
 #define cpus_or_const(dst,src1,src2)   cpus_or(dst, src1, src2)
index 8875f34285bde2c3600dda89ce0f826411f96490..1d427aadfa4128875ca1d15fb90782e9c5fa60f2 100644 (file)
@@ -5,12 +5,12 @@
 
 #define APIC_DFR_VALUE (APIC_DFR_FLAT)
 
-static inline cpumask_t target_cpus(void)
+static inline cpumask_const_t target_cpus(void)
 { 
 #ifdef CONFIG_SMP
-       return cpu_online_map;
+       return mk_cpumask_const(cpu_online_map);
 #else
-       return cpumask_of_cpu(0);
+       return mk_cpumask_const(cpumask_of_cpu(0));
 #endif
 } 
 #define TARGET_CPUS (target_cpus())
index c43921ec27fe3bcecde3d720f5bc1f1f0a9d989f..6c47954f77778374f7e2249dc52e9b985a04040a 100644 (file)
@@ -53,18 +53,18 @@ extern cpumask_t cpu_online_map;
 static inline int next_online_cpu(int cpu, cpumask_t map)
 {
        do
-               cpu = next_cpu_const(cpu, map);
+               cpu = next_cpu_const(cpu, mk_cpumask_const(map));
        while (cpu < NR_CPUS && !cpu_online(cpu));
        return cpu;
 }
 
 #define for_each_cpu(cpu, map)                                         \
-       for (cpu = first_cpu_const(map);                                \
+       for (cpu = first_cpu_const(mk_cpumask_const(map));              \
                cpu < NR_CPUS;                                          \
-               cpu = next_cpu_const(cpu,map))
+               cpu = next_cpu_const(cpu,mk_cpumask_const(map)))
 
 #define for_each_online_cpu(cpu, map)                                  \
-       for (cpu = first_cpu_const(map);                                \
+       for (cpu = first_cpu_const(mk_cpumask_const(map));              \
                cpu < NR_CPUS;                                          \
                cpu = next_online_cpu(cpu,map))