Patch "s390/vmlinux.lds.S: Move ro_after_init section behind rodata section" has been added to the 5.10-stable tree

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

 



This is a note to let you know that I've just added the patch titled

    s390/vmlinux.lds.S: Move ro_after_init section behind rodata section

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     s390-vmlinux.lds.s-move-ro_after_init-section-behind.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit a4e76454f7d804a868624f76573d9ff72b067990
Author: Heiko Carstens <hca@xxxxxxxxxxxxx>
Date:   Mon Jul 29 13:06:43 2024 +0200

    s390/vmlinux.lds.S: Move ro_after_init section behind rodata section
    
    [ Upstream commit 75c10d5377d8821efafed32e4d72068d9c1f8ec0 ]
    
    The .data.rel.ro and .got section were added between the rodata and
    ro_after_init data section, which adds an RW mapping in between all RO
    mapping of the kernel image:
    
    ---[ Kernel Image Start ]---
    0x000003ffe0000000-0x000003ffe0e00000        14M PMD RO X
    0x000003ffe0e00000-0x000003ffe0ec7000       796K PTE RO X
    0x000003ffe0ec7000-0x000003ffe0f00000       228K PTE RO NX
    0x000003ffe0f00000-0x000003ffe1300000         4M PMD RO NX
    0x000003ffe1300000-0x000003ffe1331000       196K PTE RO NX
    0x000003ffe1331000-0x000003ffe13b3000       520K PTE RW NX <---
    0x000003ffe13b3000-0x000003ffe13d5000       136K PTE RO NX
    0x000003ffe13d5000-0x000003ffe1400000       172K PTE RW NX
    0x000003ffe1400000-0x000003ffe1500000         1M PMD RW NX
    0x000003ffe1500000-0x000003ffe1700000         2M PTE RW NX
    0x000003ffe1700000-0x000003ffe1800000         1M PMD RW NX
    0x000003ffe1800000-0x000003ffe187e000       504K PTE RW NX
    ---[ Kernel Image End ]---
    
    Move the ro_after_init data section again right behind the rodata
    section to prevent interleaving RO and RW mappings:
    
    ---[ Kernel Image Start ]---
    0x000003ffe0000000-0x000003ffe0e00000        14M PMD RO X
    0x000003ffe0e00000-0x000003ffe0ec7000       796K PTE RO X
    0x000003ffe0ec7000-0x000003ffe0f00000       228K PTE RO NX
    0x000003ffe0f00000-0x000003ffe1300000         4M PMD RO NX
    0x000003ffe1300000-0x000003ffe1353000       332K PTE RO NX
    0x000003ffe1353000-0x000003ffe1400000       692K PTE RW NX
    0x000003ffe1400000-0x000003ffe1500000         1M PMD RW NX
    0x000003ffe1500000-0x000003ffe1700000         2M PTE RW NX
    0x000003ffe1700000-0x000003ffe1800000         1M PMD RW NX
    0x000003ffe1800000-0x000003ffe187e000       504K PTE RW NX
    ---[ Kernel Image End ]---
    
    Reviewed-by: Alexander Gordeev <agordeev@xxxxxxxxxxxxx>
    Signed-off-by: Heiko Carstens <hca@xxxxxxxxxxxxx>
    Signed-off-by: Vasily Gorbik <gor@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S
index 1c65c38ec9a3..c4bf95371f49 100644
--- a/arch/s390/kernel/vmlinux.lds.S
+++ b/arch/s390/kernel/vmlinux.lds.S
@@ -69,6 +69,15 @@ SECTIONS
 	. = ALIGN(PAGE_SIZE);
 	__end_ro_after_init = .;
 
+	.data.rel.ro : {
+		*(.data.rel.ro .data.rel.ro.*)
+	}
+	.got : {
+		__got_start = .;
+		*(.got)
+		__got_end = .;
+	}
+
 	RW_DATA(0x100, PAGE_SIZE, THREAD_SIZE)
 	BOOT_DATA_PRESERVED
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux