mirror of
https://github.com/torvalds/linux.git
synced 2025-11-01 00:58:39 +02: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
1 changed files with 6 additions and 7 deletions
|
|
@ -653,13 +653,12 @@ static int __jump_label_mod_text_reserved(void *start, void *end)
|
||||||
struct module *mod;
|
struct module *mod;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
preempt_disable();
|
scoped_guard(rcu) {
|
||||||
mod = __module_text_address((unsigned long)start);
|
mod = __module_text_address((unsigned long)start);
|
||||||
WARN_ON_ONCE(__module_text_address((unsigned long)end) != mod);
|
WARN_ON_ONCE(__module_text_address((unsigned long)end) != mod);
|
||||||
if (!try_module_get(mod))
|
if (!try_module_get(mod))
|
||||||
mod = NULL;
|
mod = NULL;
|
||||||
preempt_enable();
|
}
|
||||||
|
|
||||||
if (!mod)
|
if (!mod)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue