@@ -33,8 +33,8 @@ config RISCV
3333 select ARCH_HAS_PTE_SPECIAL
3434 select ARCH_HAS_SET_DIRECT_MAP if MMU
3535 select ARCH_HAS_SET_MEMORY if MMU
36- select ARCH_HAS_STRICT_KERNEL_RWX if MMU && !XIP_KERNEL
37- select ARCH_HAS_STRICT_MODULE_RWX if MMU && !XIP_KERNEL
36+ select ARCH_HAS_STRICT_KERNEL_RWX if MMU && !RISCV_RELAXED_RWX
37+ select ARCH_HAS_STRICT_MODULE_RWX if MMU && !RISCV_RELAXED_RWX
3838 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
3939 select ARCH_HAS_UBSAN_SANITIZE_ALL
4040 select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
@@ -529,13 +529,23 @@ config PHYS_RAM_BASE
529529 explicitly specified to run early relocations of read-write data
530530 from flash to RAM.
531531
532+ config RISCV_RELAXED_RWX
533+ bool
534+ default n
535+
536+ config RISCV_RELAXED_ALLOC_RWX
537+ bool
538+ select RISCV_RELAXED_RWX
539+ default n
540+
532541config XIP_KERNEL
533542 bool "Kernel Execute-In-Place from ROM"
534543 depends on MMU && SPARSEMEM
535544 # This prevents XIP from being enabled by all{yes,mod}config, which
536545 # fail to build since XIP doesn't support large kernels.
537546 depends on !COMPILE_TEST
538547 select PHYS_RAM_BASE_FIXED
548+ select RISCV_RELAXED_RWX
539549 help
540550 Execute-In-Place allows the kernel to run from non-volatile storage
541551 directly addressable by the CPU, such as NOR flash. This saves RAM
0 commit comments