From: Badari Pulavarty Problem is with "c - cpu_data" arthimetic. "c" could be "boot_cpu_data" or "cpu_data". Signed-off-by: Andrew Morton --- 25-akpm/arch/x86_64/kernel/setup.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN arch/x86_64/kernel/setup.c~x86_64-fix-bugs-in-the-amd-k8-cmp-support-code-fix arch/x86_64/kernel/setup.c --- 25/arch/x86_64/kernel/setup.c~x86_64-fix-bugs-in-the-amd-k8-cmp-support-code-fix 2004-12-06 17:48:55.364774648 -0800 +++ 25-akpm/arch/x86_64/kernel/setup.c 2004-12-06 17:48:55.368774040 -0800 @@ -916,7 +916,8 @@ void __init identify_cpu(struct cpuinfo_ mcheck_init(c); #endif #ifdef CONFIG_NUMA - numa_add_cpu(c - cpu_data); + if (c != &boot_cpu_data) + numa_add_cpu(c - cpu_data); #endif } _