mirror of
https://github.com/torvalds/linux.git
synced 2025-04-09 14:45:27 +00:00
jump_label: Use RCU in all users of __module_text_address().
__module_text_address() can be invoked within a RCU section, there is no requirement to have preemption disabled. Replace the preempt_disable() section around __module_text_address() with RCU. Cc: Ard Biesheuvel <ardb@kernel.org> Cc: Jason Baron <jbaron@akamai.com> Cc: Josh Poimboeuf <jpoimboe@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Steven Rostedt <rostedt@goodmis.org> 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-25-bigeasy@linutronix.de Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
This commit is contained in:
parent
4038131fdf
commit
72ee1c20b0
@ -653,13 +653,12 @@ static int __jump_label_mod_text_reserved(void *start, void *end)
|
||||
struct module *mod;
|
||||
int ret;
|
||||
|
||||
preempt_disable();
|
||||
mod = __module_text_address((unsigned long)start);
|
||||
WARN_ON_ONCE(__module_text_address((unsigned long)end) != mod);
|
||||
if (!try_module_get(mod))
|
||||
mod = NULL;
|
||||
preempt_enable();
|
||||
|
||||
scoped_guard(rcu) {
|
||||
mod = __module_text_address((unsigned long)start);
|
||||
WARN_ON_ONCE(__module_text_address((unsigned long)end) != mod);
|
||||
if (!try_module_get(mod))
|
||||
mod = NULL;
|
||||
}
|
||||
if (!mod)
|
||||
return 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user