linux/arch/riscv/kernel
Alexandre Ghiti e5c35fa040
riscv: Map the kernel with correct permissions the first time
For 64-bit kernels, we map all the kernel with write and execute
permissions and afterwards remove writability from text and executability
from data.

For 32-bit kernels, the kernel mapping resides in the linear mapping, so we
map all the linear mapping as writable and executable and afterwards we
remove those properties for unused memory and kernel mapping as
described above.

Change this behavior to directly map the kernel with correct permissions
and avoid going through the whole mapping to fix the permissions.

At the same time, this fixes an issue introduced by commit 2bfc6cd81b
("riscv: Move kernel mapping outside of linear mapping") as reported
here https://github.com/starfive-tech/linux/issues/17.

Signed-off-by: Alexandre Ghiti <alex@ghiti.fr>
Reviewed-by: Anup Patel <anup@brainfault.org>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
2021-06-30 21:18:58 -07:00
..
probes RISC-V Patches for the 5.13 Merge Window, Part 1 2021-05-06 09:24:18 -07:00
vdso riscv: vdso: fix and clean-up Makefile 2021-04-26 08:25:19 -07:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
asm-offsets.c riscv: Enable per-task stack canaries 2021-01-14 15:09:10 -08:00
cacheinfo.c riscv: cacheinfo: Fix using smp_processor_id() in preemptible 2021-01-12 20:25:32 -08:00
cpu_ops_sbi.c RISC-V: Support cpu hotplug 2020-03-31 11:28:30 -07:00
cpu_ops_spinwait.c RISC-V: Add cpu_ops and modify default booting method 2020-03-31 11:25:56 -07:00
cpu_ops.c treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
cpu-hotplug.c RISC-V: Support cpu hotplug 2020-03-31 11:28:30 -07:00
cpu.c RISC-V: Rename and move plic_find_hart_id() to arch directory 2020-06-09 19:11:20 -07:00
cpufeature.c RISC-V: Add bitmap reprensenting ISA features common across CPUs 2020-05-04 14:08:59 -07:00
crash_dump.c RISC-V: Add crash kernel support 2021-04-26 08:25:24 -07:00
crash_save_regs.S RISC-V: Add kdump support 2021-04-26 08:25:23 -07:00
efi-header.S RISC-V: Add PE/COFF header for EFI stub 2020-10-02 14:31:16 -07:00
efi.c RISC-V: Add EFI runtime services 2020-10-02 14:31:28 -07:00
entry.S RISC-V Patches for the 5.13 Merge Window, Part 1 2021-05-06 09:24:18 -07:00
fpu.S riscv: abstract out CSR names for supervisor vs machine mode 2019-11-05 09:20:42 -08:00
ftrace.c riscv: Using PATCHABLE_FUNCTION_ENTRY instead of MCOUNT 2021-01-14 15:09:05 -08:00
head.h RISC-V: enable XIP 2021-04-26 08:31:28 -07:00
head.S RISC-V: enable XIP 2021-04-26 08:31:28 -07:00
image-vars.h arch/riscv:fix typo in a comment in arch/riscv/kernel/image-vars.h 2021-02-18 23:18:00 -08:00
irq.c RISC-V: Remove do_IRQ() function 2020-06-09 19:11:24 -07:00
jump_label.c riscv: Add jump-label implementation 2020-07-30 11:37:43 -07:00
kexec_relocate.S RISC-V: Add kdump support 2021-04-26 08:25:23 -07:00
kgdb.c riscv: Fix "no previous prototype" compile warning in kgdb.c file 2020-07-09 20:09:30 -07:00
machine_kexec.c RISC-V: Add kdump support 2021-04-26 08:25:23 -07:00
Makefile RISC-V Patches for the 5.13 Merge Window, Part 1 2021-05-06 09:24:18 -07:00
mcount-dyn.S riscv: Using PATCHABLE_FUNCTION_ENTRY instead of MCOUNT 2021-01-14 15:09:05 -08:00
mcount.S riscv: Workaround mcount name prior to clang-13 2021-04-26 08:25:01 -07:00
module-sections.c riscv: add missing header file includes 2019-10-28 00:46:01 -07:00
module.c riscv: module: Create module allocations without exec permissions 2021-04-26 08:25:15 -07:00
patch.c riscv: Fixup compile error BUILD_BUG_ON failed 2021-01-14 15:09:01 -08:00
perf_callchain.c riscv: Make stack walk callback consistent with generic code 2020-11-20 18:53:38 -08:00
perf_event.c riscv: perf_event: Make some funciton static 2020-05-11 13:48:19 -07:00
perf_regs.c perf/arch: Remove perf_sample_data::regs_user_copy 2020-11-09 18:12:34 +01:00
process.c riscv: process: Fix no prototype for show_regs 2021-03-09 20:46:05 -08:00
ptrace.c RISC-V: Implement ptrace regs and stack API 2021-01-14 15:09:01 -08:00
reset.c riscv: cleanup the default power off implementation 2019-11-13 13:22:52 -08:00
riscv_ksyms.c riscv: provide memmove implementation 2020-12-10 17:27:54 -08:00
sbi.c RISC-V Patches for the 5.13 Merge Window, Part 1 2021-05-06 09:24:18 -07:00
setup.c riscv: Map the kernel with correct permissions the first time 2021-06-30 21:18:58 -07:00
signal.c riscv: Add uprobes supported 2021-01-14 15:09:08 -08:00
smp.c RISC-V: Fix error code returned by riscv_hartid_to_cpuid() 2021-05-01 08:53:19 -07:00
smpboot.c riscv: Introduce alternative mechanism to apply errata solution 2021-04-26 08:24:55 -07:00
soc.c riscv: Fix builtin DTB handling 2021-01-07 19:00:50 -08:00
stacktrace.c riscv: Drop const annotation for sp 2021-04-01 21:37:03 -07:00
sys_riscv.c RISC-V: Don't allow write+exec only page mapping request in mmap 2020-06-18 17:28:53 -07:00
syscall_table.c riscv: Constify sys_call_table 2021-04-26 08:25:09 -07:00
time.c RISC-V Patches for the 5.13 Merge Window, Part 1 2021-05-06 09:24:18 -07:00
traps_misaligned.c riscv: Unaligned load/store handling for M_MODE 2020-04-03 10:45:33 -07:00
traps.c riscv: remove unused handle_exception symbol 2021-05-06 09:40:16 -07:00
vdso.c riscv: Mark some global variables __ro_after_init 2021-04-26 08:25:08 -07:00
vmlinux-xip.lds.S RISC-V: enable XIP 2021-04-26 08:31:28 -07:00
vmlinux.lds.S RISC-V: enable XIP 2021-04-26 08:31:28 -07:00