node_to_cpumask on non NUMA systems is broken if used before all the processors have been brought up as it returns cpu_online_map, as opposed to NUMA i386 systems which does it earlier than AP bringup. So return which processors responded via cpu_present_map and switch to cpu_online_map during normal runtime. This was found whilst testing a patch which does node dependent work before APs have all gone online.
Signed-off-by: Zwane Mwaikambo <[EMAIL PROTECTED]> Index: linux-2.6.13-rc5-mm1/include/asm-i386/topology.h =================================================================== RCS file: /home/cvsroot/linux-2.6.13-rc5-mm1/include/asm-i386/topology.h,v retrieving revision 1.1.1.1 diff -u -p -B -r1.1.1.1 topology.h --- linux-2.6.13-rc5-mm1/include/asm-i386/topology.h 7 Aug 2005 21:38:36 -0000 1.1.1.1 +++ linux-2.6.13-rc5-mm1/include/asm-i386/topology.h 19 Aug 2005 01:35:07 -0000 @@ -99,6 +99,15 @@ extern unsigned long node_remap_size[]; * above macros here. */ +#define node_to_cpumask(node) _node_to_cpumask(node) +static inline cpumask_t _node_to_cpumask(int node) +{ + if (unlikely(system_state == SYSTEM_BOOTING)) + return cpu_present_map; + + return cpu_online_map; +} + #include <asm-generic/topology.h> #endif /* CONFIG_NUMA */ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/