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
This commit is contained in:
H. Peter Anvin 2014-05-04 10:00:49 -07:00
parent 20b68535cd
commit 197725de65
4 changed files with 7 additions and 3 deletions

View File

@ -914,6 +914,10 @@ config VM86
XFree86 to initialize some video cards via BIOS. Disabling this XFree86 to initialize some video cards via BIOS. Disabling this
option saves about 6k. option saves about 6k.
config X86_ESPFIX64
def_bool y
depends on X86_64
config TOSHIBA config TOSHIBA
tristate "Toshiba Laptop support" tristate "Toshiba Laptop support"
depends on X86_32 depends on X86_32

View File

@ -29,7 +29,7 @@ obj-$(CONFIG_X86_64) += sys_x86_64.o x8664_ksyms_64.o
obj-y += syscall_$(BITS).o vsyscall_gtod.o obj-y += syscall_$(BITS).o vsyscall_gtod.o
obj-$(CONFIG_X86_64) += vsyscall_64.o obj-$(CONFIG_X86_64) += vsyscall_64.o
obj-$(CONFIG_X86_64) += vsyscall_emu_64.o obj-$(CONFIG_X86_64) += vsyscall_emu_64.o
obj-$(CONFIG_X86_64) += espfix_64.o obj-$(CONFIG_X86_ESPFIX64) += espfix_64.o
obj-$(CONFIG_SYSFS) += ksysfs.o obj-$(CONFIG_SYSFS) += ksysfs.o
obj-y += bootflag.o e820.o obj-y += bootflag.o e820.o
obj-y += pci-dma.o quirks.o topology.o kdebugfs.o obj-y += pci-dma.o quirks.o topology.o kdebugfs.o

View File

@ -246,7 +246,7 @@ static void notrace start_secondary(void *unused)
/* /*
* Enable the espfix hack for this CPU * Enable the espfix hack for this CPU
*/ */
#ifdef CONFIG_X86_64 #ifdef CONFIG_X86_ESPFIX64
init_espfix_ap(); init_espfix_ap();
#endif #endif

View File

@ -617,7 +617,7 @@ asmlinkage void __init start_kernel(void)
if (efi_enabled(EFI_RUNTIME_SERVICES)) if (efi_enabled(EFI_RUNTIME_SERVICES))
efi_enter_virtual_mode(); efi_enter_virtual_mode();
#endif #endif
#ifdef CONFIG_X86_64 #ifdef CONFIG_X86_ESPFIX64
/* Should be run before the first non-init thread is created */ /* Should be run before the first non-init thread is created */
init_espfix_bsp(); init_espfix_bsp();
#endif #endif