On 2023/6/6 12:28, Maninder Singh wrote: > This change makes function kallsyms_show_value() as > generic function without dependency on CONFIG_KALLSYMS. > > Now module address will be displayed with lsmod and /proc/modules. > > Earlier: > ======= > / # insmod test.ko > / # lsmod > test 12288 0 - Live 0x0000000000000000 (O) // No Module Load address > / # > > With change: > ========== > / # insmod test.ko > / # lsmod > test 12288 0 - Live 0xffff800000fc0000 (O) // Module address > / # cat /proc/modules > test 12288 0 - Live 0xffff800000fc0000 (O) Reviewed-by: Zhen Lei <thunder.leizhen@xxxxxxxxxx> > > Co-developed-by: Onkarnath <onkarnath.1@xxxxxxxxxxx> > Signed-off-by: Onkarnath <onkarnath.1@xxxxxxxxxxx> > Signed-off-by: Maninder Singh <maninder1.s@xxxxxxxxxxx> > --- > include/linux/kallsyms.h | 11 +++-------- > kernel/ksyms_common.c | 2 -- > 2 files changed, 3 insertions(+), 10 deletions(-) > > diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h > index 1037f4957caa..c3f075e8f60c 100644 > --- a/include/linux/kallsyms.h > +++ b/include/linux/kallsyms.h > @@ -65,6 +65,9 @@ static inline void *dereference_symbol_descriptor(void *ptr) > return ptr; > } > > +/* How and when do we show kallsyms values? */ > +extern bool kallsyms_show_value(const struct cred *cred); > + > #ifdef CONFIG_KALLSYMS > unsigned long kallsyms_sym_address(int idx); > int kallsyms_on_each_symbol(int (*fn)(void *, const char *, unsigned long), > @@ -94,9 +97,6 @@ extern int sprint_backtrace_build_id(char *buffer, unsigned long address); > > int lookup_symbol_name(unsigned long addr, char *symname); > > -/* How and when do we show kallsyms values? */ > -extern bool kallsyms_show_value(const struct cred *cred); > - > #else /* !CONFIG_KALLSYMS */ > > static inline unsigned long kallsyms_lookup_name(const char *name) > @@ -154,11 +154,6 @@ static inline int lookup_symbol_name(unsigned long addr, char *symname) > return -ERANGE; > } > > -static inline bool kallsyms_show_value(const struct cred *cred) > -{ > - return false; > -} > - > static inline int kallsyms_on_each_symbol(int (*fn)(void *, const char *, unsigned long), > void *data) > { > diff --git a/kernel/ksyms_common.c b/kernel/ksyms_common.c > index e776f12f0f5a..9603bbef095c 100644 > --- a/kernel/ksyms_common.c > +++ b/kernel/ksyms_common.c > @@ -6,7 +6,6 @@ > #include <linux/kallsyms.h> > #include <linux/security.h> > > -#ifdef CONFIG_KALLSYMS > static inline int kallsyms_for_perf(void) > { > #ifdef CONFIG_PERF_EVENTS > @@ -42,4 +41,3 @@ bool kallsyms_show_value(const struct cred *cred) > return false; > } > } > -#endif > -- Regards, Zhen Lei