[PATCH v5 01/27] x86/boot: Align vmlinuz sections on page size

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



To protect sections on page table level each section needs to be
aligned on page size (4KB).

Set sections alignment in linker script for the kernel decompressor
(boot/compressed/vmlinux.lds.S).

Also introduce symbols that can be used to reference compressed
kernel blob section later in the later patches.

Tested-by: Mario Limonciello <mario.limonciello@xxxxxxx>
Signed-off-by: Evgeniy Baskov <baskov@xxxxxxxxx>
---
 arch/x86/boot/compressed/vmlinux.lds.S | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/x86/boot/compressed/vmlinux.lds.S b/arch/x86/boot/compressed/vmlinux.lds.S
index b22f34b8684a..a5015b958085 100644
--- a/arch/x86/boot/compressed/vmlinux.lds.S
+++ b/arch/x86/boot/compressed/vmlinux.lds.S
@@ -27,31 +27,32 @@ SECTIONS
 		HEAD_TEXT
 		_ehead = . ;
 	}
-	.rodata..compressed : {
+	.rodata..compressed : ALIGN(PAGE_SIZE) {
+		_compressed = .;
 		*(.rodata..compressed)
+		_ecompressed = .;
 	}
-	.text :	{
+	.text :	ALIGN(PAGE_SIZE) {
 		_text = .; 	/* Text */
 		*(.text)
 		*(.text.*)
 		*(.noinstr.text)
 		_etext = . ;
 	}
-	.rodata : {
+	.rodata : ALIGN(PAGE_SIZE) {
 		_rodata = . ;
 		*(.rodata)	 /* read-only data */
 		*(.rodata.*)
 		_erodata = . ;
 	}
-	.data :	{
+	.data :	ALIGN(PAGE_SIZE) {
 		_data = . ;
 		*(.data)
 		*(.data.*)
 		*(.bss.efistub)
 		_edata = . ;
 	}
-	. = ALIGN(L1_CACHE_BYTES);
-	.bss : {
+	.bss : ALIGN(L1_CACHE_BYTES) {
 		_bss = . ;
 		*(.bss)
 		*(.bss.*)
@@ -60,8 +61,7 @@ SECTIONS
 		_ebss = .;
 	}
 #ifdef CONFIG_X86_64
-       . = ALIGN(PAGE_SIZE);
-       .pgtable : {
+       .pgtable : ALIGN(PAGE_SIZE) {
 		_pgtable = . ;
 		*(.pgtable)
 		_epgtable = . ;
-- 
2.39.2




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux