Fix AMD early CPU detection c->extended_cpu_level must be initialized before it is used. Signed-off-by: Andi Kleen --- arch/x86/kernel/setup_64.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) Index: linux/arch/x86/kernel/setup_64.c =================================================================== --- linux.orig/arch/x86/kernel/setup_64.c +++ linux/arch/x86/kernel/setup_64.c @@ -918,6 +918,9 @@ static void __cpuinit early_identify_cpu #ifdef CONFIG_SMP c->phys_proc_id = (cpuid_ebx(1) >> 24) & 0xff; #endif + + c->extended_cpuid_level = cpuid_eax(0x80000000); + /* AMD-defined flags: level 0x80000001 */ xlvl = c->extended_cpuid_level; if ((xlvl & 0xffff0000) == 0x80000000) { @@ -1007,8 +1010,6 @@ void __cpuinit identify_cpu(struct cpuin numa_add_cpu(smp_processor_id()); #endif - c->extended_cpuid_level = cpuid_eax(0x80000000); - if (c->extended_cpuid_level >= 0x80000007) c->x86_power = cpuid_edx(0x80000007);