From: Christoph Lameter pcibus_to_node currently returns 0 if the arch provides no definition. This means that all devices are seen to be on node 0 and therefore all control structures are allocated on node 0. pcibus_to_node must return -1 to indicate that no node information is available. Then also pcibus_to_cpumask must return a cpumask for all cpu if the node is -1 Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton --- include/asm-generic/topology.h | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff -puN include/asm-generic/topology.h~allow-pcibus_to_node-to-return-undetermined include/asm-generic/topology.h --- 25/include/asm-generic/topology.h~allow-pcibus_to_node-to-return-undetermined 2005-05-11 18:31:14.000000000 -0700 +++ 25-akpm/include/asm-generic/topology.h 2005-05-11 18:31:14.000000000 -0700 @@ -42,11 +42,14 @@ #define node_to_first_cpu(node) (0) #endif #ifndef pcibus_to_node -#define pcibus_to_node(node) (0) +#define pcibus_to_node(node) (-1) #endif #ifndef pcibus_to_cpumask -#define pcibus_to_cpumask(bus) (node_to_cpumask(pcibus_to_node(bus))) +#define pcibus_to_cpumask(bus) (pcibus_to_node(bus) == -1 ? \ + CPU_MASK_ALL : \ + node_to_cpumask(pcibus_to_node(bus)) \ + ) #endif #endif /* _ASM_GENERIC_TOPOLOGY_H */ _