aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/Kconfig
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2013-07-08 12:15:17 -0400
committerH. Peter Anvin <hpa@linux.intel.com>2013-08-08 00:00:04 -0400
commita02150610776f66b40257624822a879311592bb2 (patch)
treea14370b350bfead0b692d2b6a4b74f426c17024d /arch/x86/Kconfig
parentc095ba7224d8edc71dcef0d655911399a8bd4a3f (diff)
x86, relocs: Move ELF relocation handling to C
Moves the relocation handling into C, after decompression. This requires that the decompressed size is passed to the decompression routine as well so that relocations can be found. Only kernels that need relocation support will use the code (currently just x86_32), but this is laying the ground work for 64-bit using it in support of KASLR. Based on work by Neill Clift and Michael Davidson. Signed-off-by: Kees Cook <keescook@chromium.org> Link: http://lkml.kernel.org/r/20130708161517.GA4832@www.outflux.net Acked-by: Zhang Yanfei <zhangyanfei@cn.fujitsu.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/Kconfig')
-rw-r--r--arch/x86/Kconfig8
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index b32ebf92b0ce..8002668d60a1 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1716,9 +1716,10 @@ config X86_NEED_RELOCS
1716 depends on X86_32 && RELOCATABLE 1716 depends on X86_32 && RELOCATABLE
1717 1717
1718config PHYSICAL_ALIGN 1718config PHYSICAL_ALIGN
1719 hex "Alignment value to which kernel should be aligned" if X86_32 1719 hex "Alignment value to which kernel should be aligned"
1720 default "0x1000000" 1720 default "0x1000000"
1721 range 0x2000 0x1000000 1721 range 0x2000 0x1000000 if X86_32
1722 range 0x200000 0x1000000 if X86_64
1722 ---help--- 1723 ---help---
1723 This value puts the alignment restrictions on physical address 1724 This value puts the alignment restrictions on physical address
1724 where kernel is loaded and run from. Kernel is compiled for an 1725 where kernel is loaded and run from. Kernel is compiled for an
@@ -1736,6 +1737,9 @@ config PHYSICAL_ALIGN
1736 end result is that kernel runs from a physical address meeting 1737 end result is that kernel runs from a physical address meeting
1737 above alignment restrictions. 1738 above alignment restrictions.
1738 1739
1740 On 32-bit this value must be a multiple of 0x2000. On 64-bit
1741 this value must be a multiple of 0x200000.
1742
1739 Don't change this unless you know what you are doing. 1743 Don't change this unless you know what you are doing.
1740 1744
1741config HOTPLUG_CPU 1745config HOTPLUG_CPU