From: Andrew Morton nfi. Might be due to bad reject fixings. Cc: Thomas Gleixner Cc: Ingo Molnar Signed-off-by: Andrew Morton --- arch/x86/kernel/setup_64.c | 68 +---------------------------------- 1 file changed, 2 insertions(+), 66 deletions(-) diff -puN arch/x86/kernel/setup_64.c~git-x86-identify_cpu-fix arch/x86/kernel/setup_64.c --- a/arch/x86/kernel/setup_64.c~git-x86-identify_cpu-fix +++ a/arch/x86/kernel/setup_64.c @@ -894,7 +894,7 @@ struct cpu_model_info { below. */ static void __cpuinit early_identify_cpu(struct cpuinfo_x86 *c) { - u32 tfms, xlvl; + u32 tfms; c->loops_per_jiffy = loops_per_jiffy; c->x86_cache_size = -1; @@ -950,7 +950,7 @@ static void __cpuinit early_identify_cpu void __cpuinit identify_cpu(struct cpuinfo_x86 *c) { /* AMD-defined flags: level 0x80000001 */ - xlvl = cpuid_eax(0x80000000); + u32 xlvl = cpuid_eax(0x80000000); c->extended_cpuid_level = xlvl; if ((xlvl & 0xffff0000) == 0x80000000) { if (xlvl >= 0x80000001) { @@ -977,70 +977,6 @@ void __cpuinit identify_cpu(struct cpuin } -/* - * This does the hard work of actually picking apart the CPU stuff... - */ -void __cpuinit identify_cpu(struct cpuinfo_x86 *c) -{ - int i; - - early_identify_cpu(c); - - init_scattered_cpuid_features(c); - - c->apicid = phys_pkg_id(0); - - /* - * Vendor-specific initialization. In this section we - * canonicalize the feature flags, meaning if there are - * features a certain CPU supports which CPUID doesn't - * tell us, CPUID claiming incorrect flags, or other bugs, - * we handle them here. - * - * At the end of this section, c->x86_capability better - * indicate the features this CPU genuinely supports! - */ - switch (c->x86_vendor) { - case X86_VENDOR_AMD: - init_amd(c); - break; - - case X86_VENDOR_INTEL: - init_intel(c); - break; - - case X86_VENDOR_UNKNOWN: - default: - display_cacheinfo(c); - break; - } - - select_idle_routine(c); - detect_ht(c); - - /* - * On SMP, boot_cpu_data holds the common feature set between - * all CPUs; so make sure that we indicate which features are - * common between the CPUs. The first time this routine gets - * executed, c == &boot_cpu_data. - */ - if (c != &boot_cpu_data) { - /* AND the already accumulated flags with these */ - for (i = 0 ; i < NCAPINTS ; i++) - boot_cpu_data.x86_capability[i] &= c->x86_capability[i]; - } - -#ifdef CONFIG_X86_MCE - mcheck_init(c); -#endif - if (c != &boot_cpu_data) - mtrr_ap_init(); -#ifdef CONFIG_NUMA - numa_add_cpu(smp_processor_id()); -#endif -} - - void __cpuinit print_cpu_info(struct cpuinfo_x86 *c) { if (c->x86_model_id[0]) _