Re: compile error for Opteron CPU with kernel 2.6.0-test2

From: Andrew Morton (akpm@osdl.org)
Date: Thu Jul 31 2003 - 20:27:05 EST


Michael Bakos <bakhos@msi.umn.edu> wrote:
>
> In file included from include/linux/topology.h:35,
> from include/linux/mmzone.h:294,
> from include/linux/gfp.h:4,
> from include/linux/slab.h:15,
> from include/linux/percpu.h:4,
> from include/linux/sched.h:31,
> from arch/x86_64/kernel/asm-offsets.c:7:
> include/asm/topology.h: In function `pcibus_to_cpumask':
> include/asm/topology.h:24: error: invalid operands to binary &
> make[1]: *** [arch/x86_64/kernel/asm-offsets.s] Error 1
> make: *** [arch/x86_64/kernel/asm-offsets.s] Error 2

urgh, OK. We're chasing around in circles here. And the cpumask_t patch
still isn't ready for merging.

This might fix it.

 arch/x86_64/kernel/mpparse.c | 2 +-
 include/asm-x86_64/mpspec.h | 2 +-
 include/asm-x86_64/topology.h | 7 +++++--
 3 files changed, 7 insertions(+), 4 deletions(-)

diff -puN include/asm-x86_64/topology.h~x86_64-cpumask_t-fix include/asm-x86_64/topology.h
--- 25/include/asm-x86_64/topology.h~x86_64-cpumask_t-fix 2003-07-31 18:20:51.000000000 -0700
+++ 25-akpm/include/asm-x86_64/topology.h 2003-07-31 18:25:11.000000000 -0700
@@ -19,9 +19,12 @@ extern cpumask_t cpu_online_map;
 #define node_to_cpu_mask(node) (fake_node ? cpu_online_map : cpumask_of_cpu(node))
 #define node_to_memblk(node) (node)
 
-static inline unsigned long pcibus_to_cpumask(int bus)
+static inline cpumask_t pcibus_to_cpumask(int bus)
 {
- return mp_bus_to_cpumask[bus] & cpu_online_map;
+ cpumask_t ret;
+
+ cpus_and(ret, mp_bus_to_cpumask[bus], cpu_online_map);
+ return ret;
 }
 
 #define NODE_BALANCE_RATE 30 /* CHECKME */
diff -puN include/asm-x86_64/mpspec.h~x86_64-cpumask_t-fix include/asm-x86_64/mpspec.h
--- 25/include/asm-x86_64/mpspec.h~x86_64-cpumask_t-fix 2003-07-31 18:24:12.000000000 -0700
+++ 25-akpm/include/asm-x86_64/mpspec.h 2003-07-31 18:24:35.000000000 -0700
@@ -166,7 +166,7 @@ enum mp_bustype {
 };
 extern unsigned char mp_bus_id_to_type [MAX_MP_BUSSES];
 extern int mp_bus_id_to_pci_bus [MAX_MP_BUSSES];
-extern unsigned long mp_bus_to_cpumask [MAX_MP_BUSSES];
+extern cpumask_t mp_bus_to_cpumask [MAX_MP_BUSSES];
 
 extern unsigned int boot_cpu_physical_apicid;
 extern cpumask_t phys_cpu_present_map;
diff -puN arch/x86_64/kernel/mpparse.c~x86_64-cpumask_t-fix arch/x86_64/kernel/mpparse.c
--- 25/arch/x86_64/kernel/mpparse.c~x86_64-cpumask_t-fix 2003-07-31 18:24:54.000000000 -0700
+++ 25-akpm/arch/x86_64/kernel/mpparse.c 2003-07-31 18:25:45.000000000 -0700
@@ -43,7 +43,7 @@ int acpi_found_madt;
 int apic_version [MAX_APICS];
 unsigned char mp_bus_id_to_type [MAX_MP_BUSSES] = { [0 ... MAX_MP_BUSSES-1] = -1 };
 int mp_bus_id_to_pci_bus [MAX_MP_BUSSES] = { [0 ... MAX_MP_BUSSES-1] = -1 };
-unsigned long mp_bus_to_cpumask [MAX_MP_BUSSES] = { [0 ... MAX_MP_BUSSES-1] = -1UL };
+cpumask_t mp_bus_to_cpumask [MAX_MP_BUSSES] = { [0 ... MAX_MP_BUSSES-1] = CPU_MASK_ALL };
 
 int mp_current_pci_id = 0;
 /* I/O APIC entries */

_

-
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/



This archive was generated by hypermail 2b29 : Thu Jul 31 2003 - 22:00:52 EST