mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 06:31:52 +00:00
modules: Fix build error in the !CONFIG_KALLSYMS case
> James Bottomley (1):
> module: workaround duplicate section names
-tip testing found that this patch breaks the build on x86 if
CONFIG_KALLSYMS is disabled:
kernel/module.c: In function ‘load_module’:
kernel/module.c:2367: error: ‘struct module’ has no member named ‘sect_attrs’
distcc[8269] ERROR: compile kernel/module.c on ph/32 failed
make[1]: *** [kernel/module.o] Error 1
make: *** [kernel] Error 2
make: *** Waiting for unfinished jobs....
Commit 1b364bf
misses the fact that section attributes are only
built and dealt with if kallsyms is enabled. The patch below fixes
this.
( note, technically speaking this should depend on CONFIG_SYSFS as
well but this patch is correct too and keeps the #ifdef less
intrusive - in the KALLSYMS && !SYSFS case the code is a NOP. )
Signed-off-by: Ingo Molnar <mingo@elte.hu>
[ Replaced patch with a slightly cleaner variation by James Bottomley ]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
4ed86af67e
commit
ea6bff3685
@ -1274,6 +1274,10 @@ static void add_notes_attrs(struct module *mod, unsigned int nsect,
|
|||||||
struct module_notes_attrs *notes_attrs;
|
struct module_notes_attrs *notes_attrs;
|
||||||
struct bin_attribute *nattr;
|
struct bin_attribute *nattr;
|
||||||
|
|
||||||
|
/* failed to create section attributes, so can't create notes */
|
||||||
|
if (!mod->sect_attrs)
|
||||||
|
return;
|
||||||
|
|
||||||
/* Count notes sections and allocate structures. */
|
/* Count notes sections and allocate structures. */
|
||||||
notes = 0;
|
notes = 0;
|
||||||
for (i = 0; i < nsect; i++)
|
for (i = 0; i < nsect; i++)
|
||||||
@ -2355,7 +2359,6 @@ static noinline struct module *load_module(void __user *umod,
|
|||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto unlink;
|
goto unlink;
|
||||||
add_sect_attrs(mod, hdr->e_shnum, secstrings, sechdrs);
|
add_sect_attrs(mod, hdr->e_shnum, secstrings, sechdrs);
|
||||||
if (mod->sect_attrs)
|
|
||||||
add_notes_attrs(mod, hdr->e_shnum, secstrings, sechdrs);
|
add_notes_attrs(mod, hdr->e_shnum, secstrings, sechdrs);
|
||||||
|
|
||||||
/* Get rid of temporary copy */
|
/* Get rid of temporary copy */
|
||||||
|
Loading…
Reference in New Issue
Block a user