x86_64: Fix safe_smp_processor_id after genapic
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
Acked-by Andi Kleen <[email protected]>
Please apply ASAP
include/asm-x86_64/smp.h +5 -0
@@ -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 ; }