Skip to contentSkip to conversation

x86_64: Fix safe_smp_processor_id after genapic

PATCH New Andi Kleen 1 participant 1 message Oct 28, 2004

lore
Share & tools
lore

Andi Kleen

author
#0 lore raw

PATCH 1/1 x86_64: Fix safe_smp_processor_id after genapic

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

Please apply ASAP

include/asm-x86_64/smp.h +5 -0
Index: linux/include/asm-x86_64/smp.h
===================================================================
@@ -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;
 }