diff options
author | H. Peter Anvin <hpa@zytor.com> | 2014-05-04 13:00:49 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2014-05-04 13:00:49 -0400 |
commit | 197725de65477bc8509b41388157c1a2283542bb (patch) | |
tree | 3c6a93426fe489b6c8f6e87027c73cf970bacdc5 | |
parent | 20b68535cd27183ebd3651ff313afb2b97dac941 (diff) |
x86, espfix: Make espfix64 a Kconfig option, fix UML
Make espfix64 a hidden Kconfig option. This fixes the x86-64 UML
build which had broken due to the non-existence of init_espfix_bsp()
in UML: since UML uses its own Kconfig, this option does not appear in
the UML build.
This also makes it possible to make support for 16-bit segments a
configuration option, for the people who want to minimize the size of
the kernel.
Reported-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cc: Richard Weinberger <richard@nod.at>
Link: http://lkml.kernel.org/r/1398816946-3351-1-git-send-email-hpa@linux.intel.com
-rw-r--r-- | arch/x86/Kconfig | 4 | ||||
-rw-r--r-- | arch/x86/kernel/Makefile | 2 | ||||
-rw-r--r-- | arch/x86/kernel/smpboot.c | 2 | ||||
-rw-r--r-- | init/main.c | 2 |
4 files changed, 7 insertions, 3 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 25d2c6f7325e..9a952a572585 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -914,6 +914,10 @@ config VM86 | |||
914 | XFree86 to initialize some video cards via BIOS. Disabling this | 914 | XFree86 to initialize some video cards via BIOS. Disabling this |
915 | option saves about 6k. | 915 | option saves about 6k. |
916 | 916 | ||
917 | config X86_ESPFIX64 | ||
918 | def_bool y | ||
919 | depends on X86_64 | ||
920 | |||
917 | config TOSHIBA | 921 | config TOSHIBA |
918 | tristate "Toshiba Laptop support" | 922 | tristate "Toshiba Laptop support" |
919 | depends on X86_32 | 923 | depends on X86_32 |
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile index 1cc3789d99d9..491ef3e59850 100644 --- a/arch/x86/kernel/Makefile +++ b/arch/x86/kernel/Makefile | |||
@@ -29,7 +29,7 @@ obj-$(CONFIG_X86_64) += sys_x86_64.o x8664_ksyms_64.o | |||
29 | obj-y += syscall_$(BITS).o vsyscall_gtod.o | 29 | obj-y += syscall_$(BITS).o vsyscall_gtod.o |
30 | obj-$(CONFIG_X86_64) += vsyscall_64.o | 30 | obj-$(CONFIG_X86_64) += vsyscall_64.o |
31 | obj-$(CONFIG_X86_64) += vsyscall_emu_64.o | 31 | obj-$(CONFIG_X86_64) += vsyscall_emu_64.o |
32 | obj-$(CONFIG_X86_64) += espfix_64.o | 32 | obj-$(CONFIG_X86_ESPFIX64) += espfix_64.o |
33 | obj-$(CONFIG_SYSFS) += ksysfs.o | 33 | obj-$(CONFIG_SYSFS) += ksysfs.o |
34 | obj-y += bootflag.o e820.o | 34 | obj-y += bootflag.o e820.o |
35 | obj-y += pci-dma.o quirks.o topology.o kdebugfs.o | 35 | obj-y += pci-dma.o quirks.o topology.o kdebugfs.o |
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 61a5350850fb..5d93ac1b72db 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
@@ -246,7 +246,7 @@ static void notrace start_secondary(void *unused) | |||
246 | /* | 246 | /* |
247 | * Enable the espfix hack for this CPU | 247 | * Enable the espfix hack for this CPU |
248 | */ | 248 | */ |
249 | #ifdef CONFIG_X86_64 | 249 | #ifdef CONFIG_X86_ESPFIX64 |
250 | init_espfix_ap(); | 250 | init_espfix_ap(); |
251 | #endif | 251 | #endif |
252 | 252 | ||
diff --git a/init/main.c b/init/main.c index 70fc00e7db06..58c132d7de4b 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -617,7 +617,7 @@ asmlinkage void __init start_kernel(void) | |||
617 | if (efi_enabled(EFI_RUNTIME_SERVICES)) | 617 | if (efi_enabled(EFI_RUNTIME_SERVICES)) |
618 | efi_enter_virtual_mode(); | 618 | efi_enter_virtual_mode(); |
619 | #endif | 619 | #endif |
620 | #ifdef CONFIG_X86_64 | 620 | #ifdef CONFIG_X86_ESPFIX64 |
621 | /* Should be run before the first non-init thread is created */ | 621 | /* Should be run before the first non-init thread is created */ |
622 | init_espfix_bsp(); | 622 | init_espfix_bsp(); |
623 | #endif | 623 | #endif |