lkml.org 
[lkml]   [2009]   [Apr]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subjectmodule bustage - git v2.6.29-9516-g0221c81 and tip v2.6.29-10558-g44f4bd6 unbootable
From
Date
Hi Rusty,

The below rendered modules unloadable, and my bog standard opensuse 11.0
x86_64 box became a doorstop.

module-init-tools version 3.4, config attached.

(nobody else has griped yet and it's already 11:08. hm)

commit 9cb610d8e35fe3ec95a2fe2030b02f85aeea83c1
Author: Rusty Russell <rusty@rustcorp.com.au>
Date: Tue Mar 31 13:05:33 2009 -0600

module: remove the SHF_ALLOC flag on the __versions section.

Impact: reduce kernel memory usage

This patch just takes off the SHF_ALLOC flag on __versions so we don't
keep them around after module load.

This saves about 7% of module memory if CONFIG_MODVERSIONS=y.

Cc: Shawn Bohrer <shawn.bohrer@gmail.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

diff --git a/kernel/module.c b/kernel/module.c
index 599fc85..784bf6d 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -1961,6 +1961,9 @@ static noinline struct module *load_module(void __user *umod,
if (strncmp(secstrings+sechdrs[i].sh_name, ".exit", 5) == 0)
sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC;
#endif
+ /* Don't keep __versions around; it's just for loading. */
+ if (strcmp(secstrings + sechdrs[i].sh_name, "__versions") == 0)
+ sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC;
}

modindex = find_sec(hdr, sechdrs, secstrings,
[unhandled content-type:application/x-gzip]
\
 
 \ /
  Last update: 2009-04-06 11:13    [from the cache]
©2003-2011 Jasper Spaans