[PATCH] x86_64: Fix safe_smp_processor_id after genapic

From: Andi Kleen
Date: Thu Oct 28 2004 - 18:55:03 EST



genapic broke early safe_smp_processor_id(), especially when you
got a WARN_ON or oops early it would loops forever in show_trace.
The reason was that the x86_cpu_to_apicid array wasn't correctly
initialized.

This patch fixes this by just testing for this case.


Orginally from James Cleverdon
Acked-by: Andi Kleen <ak@xxxxxx>

Please apply ASAP

Index: linux/include/asm-x86_64/smp.h
===================================================================
--- linux.orig/include/asm-x86_64/smp.h 2004-10-28 11:32:15.%N +0200
+++ linux/include/asm-x86_64/smp.h 2004-10-29 01:30:29.%N +0200
@@ -104,6 +104,11 @@
if (x86_cpu_to_apicid[i] == apicid)
return i;

+ /* No entries in x86_cpu_to_apicid? Either no MPS|ACPI,
+ * or called too early. Either way, we must be CPU 0. */
+ if (x86_cpu_to_apicid[0] == BAD_APICID)
+ return 0;
+
return -1;
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/