module::kallsyms can be accessed under RCU assumption.

Use rcu_dereference() to access module::kallsyms.
Update callers.

Signed-off-by: Sebastian Andrzej Siewior <bige...@linutronix.de>
---
 kernel/module/kallsyms.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/kernel/module/kallsyms.c b/kernel/module/kallsyms.c
index e3c55bc879c11..0e8ec6486d95c 100644
--- a/kernel/module/kallsyms.c
+++ b/kernel/module/kallsyms.c
@@ -476,10 +476,8 @@ int module_kallsyms_on_each_symbol(const char *modname,
                if (modname && strcmp(modname, mod->name))
                        continue;
 
-               /* Use rcu_dereference_sched() to remain compliant with the 
sparse tool */
-               preempt_disable();
-               kallsyms = rcu_dereference_sched(mod->kallsyms);
-               preempt_enable();
+               kallsyms = rcu_dereference_check(mod->kallsyms,
+                                                
lockdep_is_held(&module_mutex));
 
                for (i = 0; i < kallsyms->num_symtab; i++) {
                        const Elf_Sym *sym = &kallsyms->symtab[i];
-- 
2.45.2


Reply via email to