[PATCH 3.16 09/76] x86/cpu: Merge bugs.c and bugs_64.c
3.16.56-rc1 review patch. If anyone has any objections, please let me know. -- From: Borislav Petkovcommit 62a67e123e058a67db58bc6a14354dd037bafd0a upstream. Should be easier when following boot paths. It probably is a left over from the x86 unification eons ago. No functionality change. Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20161024173844.23038-3...@alien8.de Signed-off-by: Ingo Molnar [bwh: Backported to 3.16: - Add #ifdef around check_fpu(), which is not used on x86_64 - Adjust context] Signed-off-by: Ben Hutchings --- --- a/arch/x86/kernel/cpu/Makefile +++ b/arch/x86/kernel/cpu/Makefile @@ -16,9 +16,7 @@ obj-y := intel_cacheinfo.o scattered.o obj-y += proc.o capflags.o powerflags.o common.o obj-y += rdrand.o obj-y += match.o - -obj-$(CONFIG_X86_32) += bugs.o -obj-$(CONFIG_X86_64) += bugs_64.o +obj-y += bugs.o obj-$(CONFIG_CPU_SUP_INTEL)+= intel.o obj-$(CONFIG_CPU_SUP_AMD) += amd.o --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -16,6 +16,10 @@ #include #include #include +#include +#include + +#ifdef CONFIG_X86_32 static double __initdata x = 4195835.0; static double __initdata y = 3145727.0; @@ -63,6 +67,8 @@ static void __init check_fpu(void) } } +#endif /* CONFIG_X86_32 */ + void __init check_bugs(void) { #ifdef CONFIG_X86_32 @@ -74,11 +80,13 @@ void __init check_bugs(void) #endif identify_boot_cpu(); -#ifndef CONFIG_SMP - pr_info("CPU: "); - print_cpu_info(_cpu_data); -#endif + if (!IS_ENABLED(CONFIG_SMP)) { + pr_info("CPU: "); + print_cpu_info(_cpu_data); + } + +#ifdef CONFIG_X86_32 /* * Check whether we are able to run this kernel safely on SMP. * @@ -99,4 +107,18 @@ void __init check_bugs(void) */ if (cpu_has_fpu) check_fpu(); +#else /* CONFIG_X86_64 */ + alternative_instructions(); + + /* +* Make sure the first 2MB area is not mapped by huge pages +* There are typically fixed size MTRRs in there and overlapping +* MTRRs into large pages causes slow downs. +* +* Right now we don't do that with gbpages because there seems +* very little benefit for that case. +*/ + if (!direct_gbpages) + set_memory_4k((unsigned long)__va(0), 1); +#endif } --- a/arch/x86/kernel/cpu/bugs_64.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 1994 Linus Torvalds - * Copyright (C) 2000 SuSE - */ - -#include -#include -#include -#include -#include -#include -#include - -void __init check_bugs(void) -{ - identify_boot_cpu(); -#if !defined(CONFIG_SMP) - printk(KERN_INFO "CPU: "); - print_cpu_info(_cpu_data); -#endif - alternative_instructions(); - - /* -* Make sure the first 2MB area is not mapped by huge pages -* There are typically fixed size MTRRs in there and overlapping -* MTRRs into large pages causes slow downs. -* -* Right now we don't do that with gbpages because there seems -* very little benefit for that case. -*/ - if (!direct_gbpages) - set_memory_4k((unsigned long)__va(0), 1); -}
[PATCH 3.16 09/76] x86/cpu: Merge bugs.c and bugs_64.c
3.16.56-rc1 review patch. If anyone has any objections, please let me know. -- From: Borislav Petkov commit 62a67e123e058a67db58bc6a14354dd037bafd0a upstream. Should be easier when following boot paths. It probably is a left over from the x86 unification eons ago. No functionality change. Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20161024173844.23038-3...@alien8.de Signed-off-by: Ingo Molnar [bwh: Backported to 3.16: - Add #ifdef around check_fpu(), which is not used on x86_64 - Adjust context] Signed-off-by: Ben Hutchings --- --- a/arch/x86/kernel/cpu/Makefile +++ b/arch/x86/kernel/cpu/Makefile @@ -16,9 +16,7 @@ obj-y := intel_cacheinfo.o scattered.o obj-y += proc.o capflags.o powerflags.o common.o obj-y += rdrand.o obj-y += match.o - -obj-$(CONFIG_X86_32) += bugs.o -obj-$(CONFIG_X86_64) += bugs_64.o +obj-y += bugs.o obj-$(CONFIG_CPU_SUP_INTEL)+= intel.o obj-$(CONFIG_CPU_SUP_AMD) += amd.o --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -16,6 +16,10 @@ #include #include #include +#include +#include + +#ifdef CONFIG_X86_32 static double __initdata x = 4195835.0; static double __initdata y = 3145727.0; @@ -63,6 +67,8 @@ static void __init check_fpu(void) } } +#endif /* CONFIG_X86_32 */ + void __init check_bugs(void) { #ifdef CONFIG_X86_32 @@ -74,11 +80,13 @@ void __init check_bugs(void) #endif identify_boot_cpu(); -#ifndef CONFIG_SMP - pr_info("CPU: "); - print_cpu_info(_cpu_data); -#endif + if (!IS_ENABLED(CONFIG_SMP)) { + pr_info("CPU: "); + print_cpu_info(_cpu_data); + } + +#ifdef CONFIG_X86_32 /* * Check whether we are able to run this kernel safely on SMP. * @@ -99,4 +107,18 @@ void __init check_bugs(void) */ if (cpu_has_fpu) check_fpu(); +#else /* CONFIG_X86_64 */ + alternative_instructions(); + + /* +* Make sure the first 2MB area is not mapped by huge pages +* There are typically fixed size MTRRs in there and overlapping +* MTRRs into large pages causes slow downs. +* +* Right now we don't do that with gbpages because there seems +* very little benefit for that case. +*/ + if (!direct_gbpages) + set_memory_4k((unsigned long)__va(0), 1); +#endif } --- a/arch/x86/kernel/cpu/bugs_64.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 1994 Linus Torvalds - * Copyright (C) 2000 SuSE - */ - -#include -#include -#include -#include -#include -#include -#include - -void __init check_bugs(void) -{ - identify_boot_cpu(); -#if !defined(CONFIG_SMP) - printk(KERN_INFO "CPU: "); - print_cpu_info(_cpu_data); -#endif - alternative_instructions(); - - /* -* Make sure the first 2MB area is not mapped by huge pages -* There are typically fixed size MTRRs in there and overlapping -* MTRRs into large pages causes slow downs. -* -* Right now we don't do that with gbpages because there seems -* very little benefit for that case. -*/ - if (!direct_gbpages) - set_memory_4k((unsigned long)__va(0), 1); -}