mirror of https://github.com/torvalds/linux.git
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@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com> |
||
|---|---|---|
| .. | ||
| syscalls | ||
| vdso32 | ||
| vdso64 | ||
| .gitignore | ||
| Makefile | ||
| abs_lowcore.c | ||
| alternative.c | ||
| asm-offsets.c | ||
| audit.c | ||
| audit.h | ||
| cache.c | ||
| cert_store.c | ||
| compat_audit.c | ||
| compat_linux.c | ||
| compat_linux.h | ||
| compat_ptrace.h | ||
| compat_signal.c | ||
| cpcmd.c | ||
| cpufeature.c | ||
| crash_dump.c | ||
| ctlreg.c | ||
| debug.c | ||
| diag.c | ||
| dis.c | ||
| dumpstack.c | ||
| early.c | ||
| early_printk.c | ||
| earlypgm.S | ||
| ebcdic.c | ||
| entry.S | ||
| entry.h | ||
| facility.c | ||
| fpu.c | ||
| ftrace.c | ||
| ftrace.h | ||
| guarded_storage.c | ||
| head64.S | ||
| idle.c | ||
| ima_arch.c | ||
| ipl.c | ||
| ipl_vmparm.c | ||
| irq.c | ||
| jump_label.c | ||
| kdebugfs.c | ||
| kexec_elf.c | ||
| kexec_image.c | ||
| kprobes.c | ||
| lgr.c | ||
| machine_kexec.c | ||
| machine_kexec_file.c | ||
| machine_kexec_reloc.c | ||
| mcount.S | ||
| module.c | ||
| nmi.c | ||
| nospec-branch.c | ||
| nospec-sysfs.c | ||
| numa.c | ||
| os_info.c | ||
| perf_cpum_cf.c | ||
| perf_cpum_cf_events.c | ||
| perf_cpum_sf.c | ||
| perf_event.c | ||
| perf_pai_crypto.c | ||
| perf_pai_ext.c | ||
| perf_regs.c | ||
| process.c | ||
| processor.c | ||
| ptrace.c | ||
| reipl.S | ||
| relocate_kernel.S | ||
| rethook.c | ||
| rethook.h | ||
| runtime_instr.c | ||
| setup.c | ||
| signal.c | ||
| smp.c | ||
| stacktrace.c | ||
| sthyi.c | ||
| syscall.c | ||
| sysinfo.c | ||
| text_amode31.S | ||
| time.c | ||
| topology.c | ||
| trace.c | ||
| traps.c | ||
| unwind_bc.c | ||
| uprobes.c | ||
| uv.c | ||
| vdso.c | ||
| vmcore_info.c | ||
| vmlinux.lds.S | ||
| vtime.c | ||