* + modules-dont-export-section-names-of-empty-sections-via-sysfs.patch added to -mm tree
@ 2009-12-02 23:54 akpm
0 siblings, 0 replies; only message in thread
From: akpm @ 2009-12-02 23:54 UTC (permalink / raw)
To: mm-commits; +Cc: deller, James.Bottomley, rolandd, rusty
The patch titled
modules: don't export section names of empty sections via sysfs
has been added to the -mm tree. Its filename is
modules-dont-export-section-names-of-empty-sections-via-sysfs.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/SubmitChecklist when testing your code ***
See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find
out what to do about this
The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/
------------------------------------------------------
Subject: modules: don't export section names of empty sections via sysfs
From: Helge Deller <deller@gmx.de>
On the parisc architecture we face for each and every loaded kernel module
this kernel "badness warning":
sysfs: cannot create duplicate filename '/module/ac97_bus/sections/.text'
Badness at fs/sysfs/dir.c:487
Reason for that is, that on parisc all kernel modules do have multiple
.text sections due to the usage of the -ffunction-sections compiler flag
which is needed to reach all jump targets on this platform.
An objdump on such a kernel module gives:
Sections:
Idx Name Size VMA LMA File off Algn
0 .note.gnu.build-id 00000024 00000000 00000000 00000034 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
1 .text 00000000 00000000 00000000 00000058 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .text.ac97_bus_match 0000001c 00000000 00000000 00000058 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
3 .text 00000000 00000000 00000000 000000d4 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
...
Since the .text sections are empty (size of 0 bytes) and won't be loaded
by the kernel module loader anyway, I don't see a reason why such sections
need to be listed under /sys/module/<module_name>/sections/<section_name>
either.
The attached patch does solve this issue by not exporting section names
which are empty.
This fixes bugzilla http://bugzilla.kernel.org/show_bug.cgi?id=14703
Signed-off-by: Helge Deller <deller@gmx.de>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Roland Dreier <rolandd@cisco.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
kernel/module.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff -puN kernel/module.c~modules-dont-export-section-names-of-empty-sections-via-sysfs kernel/module.c
--- a/kernel/module.c~modules-dont-export-section-names-of-empty-sections-via-sysfs
+++ a/kernel/module.c
@@ -1037,7 +1037,8 @@ static void add_sect_attrs(struct module
/* Count loaded sections and allocate structures */
for (i = 0; i < nsect; i++)
- if (sechdrs[i].sh_flags & SHF_ALLOC)
+ if (sechdrs[i].sh_flags & SHF_ALLOC
+ && sechdrs[i].sh_size)
nloaded++;
size[0] = ALIGN(sizeof(*sect_attrs)
+ nloaded * sizeof(sect_attrs->attrs[0]),
@@ -1057,6 +1058,8 @@ static void add_sect_attrs(struct module
for (i = 0; i < nsect; i++) {
if (! (sechdrs[i].sh_flags & SHF_ALLOC))
continue;
+ if (!sechdrs[i].sh_size)
+ continue;
sattr->address = sechdrs[i].sh_addr;
sattr->name = kstrdup(secstrings + sechdrs[i].sh_name,
GFP_KERNEL);
_
Patches currently in -mm which might be from deller@gmx.de are
origin.patch
linux-next.patch
modules-dont-export-section-names-of-empty-sections-via-sysfs.patch
kernel-sysc-implement-prctlpr_get_endian-for-all-architectures.patch
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2009-12-02 23:54 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-12-02 23:54 + modules-dont-export-section-names-of-empty-sections-via-sysfs.patch added to -mm tree akpm
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).