aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/kernel/module/main.c
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2025-01-08 10:04:43 +0100
committerPetr Pavlu <petr.pavlu@suse.com>2025-03-10 11:54:45 +0100
commit6593a2c990f251bce63ab8de0397405303e32381 (patch)
treed6ac6434f1f92c1c4c654de90e1d26d039265060 /kernel/module/main.c
parentmodule: Use RCU in search_module_extables(). (diff)
downloadwireguard-linux-6593a2c990f251bce63ab8de0397405303e32381.tar.xz
wireguard-linux-6593a2c990f251bce63ab8de0397405303e32381.zip
module: Use RCU in all users of __module_address().
__module_address() can be invoked within a RCU section, there is no requirement to have preemption disabled. Replace the preempt_disable() section around __module_address() with RCU. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lore.kernel.org/r/20250108090457.512198-15-bigeasy@linutronix.de Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
Diffstat (limited to 'kernel/module/main.c')
-rw-r--r--kernel/module/main.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/kernel/module/main.c b/kernel/module/main.c
index aebb17e1bfb9..8a8b499730d8 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -3731,13 +3731,8 @@ const struct exception_table_entry *search_module_extables(unsigned long addr)
*/
bool is_module_address(unsigned long addr)
{
- bool ret;
-
- preempt_disable();
- ret = __module_address(addr) != NULL;
- preempt_enable();
-
- return ret;
+ guard(rcu)();
+ return __module_address(addr) != NULL;
}
/**