summaryrefslogtreecommitdiff
path: root/include/linux/module.h
diff options
context:
space:
mode:
authorMike Rapoport (Microsoft) <rppt@kernel.org>2025-01-26 10:47:30 +0300
committerPeter Zijlstra <peterz@infradead.org>2025-02-03 13:46:02 +0300
commitc287c072332905b7d878a8aade86cfef6b396343 (patch)
tree2bab8c093bb09b271112c0c3b076917f3486b672 /include/linux/module.h
parent05e555b817262b5df6aa3a73df8b3dc9d388a3b4 (diff)
downloadlinux-c287c072332905b7d878a8aade86cfef6b396343.tar.xz
module: switch to execmem API for remapping as RW and restoring ROX
Instead of using writable copy for module text sections, temporarily remap the memory allocated from execmem's ROX cache as writable and restore its ROX permissions after the module is formed. This will allow removing nasty games with writable copy in alternatives patching on x86. Signed-off-by: "Mike Rapoport (Microsoft)" <rppt@kernel.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lore.kernel.org/r/20250126074733.1384926-7-rppt@kernel.org
Diffstat (limited to 'include/linux/module.h')
-rw-r--r--include/linux/module.h8
1 files changed, 1 insertions, 7 deletions
diff --git a/include/linux/module.h b/include/linux/module.h
index 23792d5d7b74..ddf27ede7c91 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -367,7 +367,6 @@ enum mod_mem_type {
struct module_memory {
void *base;
- void *rw_copy;
bool is_rox;
unsigned int size;
@@ -769,14 +768,9 @@ static inline bool is_livepatch_module(struct module *mod)
void set_module_sig_enforced(void);
-void *__module_writable_address(struct module *mod, void *loc);
-
static inline void *module_writable_address(struct module *mod, void *loc)
{
- if (!IS_ENABLED(CONFIG_ARCH_HAS_EXECMEM_ROX) || !mod ||
- mod->state != MODULE_STATE_UNFORMED)
- return loc;
- return __module_writable_address(mod, loc);
+ return loc;
}
#else /* !CONFIG_MODULES... */