lkml.org 
[lkml]   [2015]   [Nov]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH v2] module: keep percpu symbols in module's symtab
Date
Miroslav Benes <mbenes@suse.cz> writes:
> Currently, percpu symbols from .data..percpu ELF section of a module are
> not copied over and stored in final symtab array of struct module.
> Consequently such symbol cannot be returned via kallsyms API (for
> example kallsyms_lookup_name). This can be especially confusing when the
> percpu symbol is exported. Only its __ksymtab et al. are present in its
> symtab.
>
> The culprit is in layout_and_allocate() function where SHF_ALLOC flag is
> dropped for .data..percpu section. There is in fact no need to copy the
> section to final struct module, because kernel module loader allocates
> extra percpu section by itself. Unfortunately only symbols from
> SHF_ALLOC sections are copied due to a check in is_core_symbol().
>
> The patch changes is_core_symbol() function to copy over also percpu
> symbols (their st_shndx points to .data..percpu ELF section). We do it
> only if CONFIG_KALLSYMS_ALL is set to be consistent with the rest of the
> function (ELF section is SHF_ALLOC but !SHF_EXECINSTR). Finally
> elf_type() returns type 'a' for a percpu symbol because its address is
> absolute.
>
> Signed-off-by: Miroslav Benes <mbenes@suse.cz>

Thanks, applied!

Cheers,
Rusty.


\
 
 \ /
  Last update: 2015-11-26 04:21    [W:0.039 / U:1.960 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site