From: Rusty Russell Date: Tue, 31 Mar 2009 19:05:33 +0000 (-0600) Subject: module: remove the SHF_ALLOC flag on the __versions section. X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=9cb610d8e35fe3ec95a2fe2030b02f85aeea83c1;p=deliverable%2Flinux.git 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 Signed-off-by: Rusty Russell --- diff --git a/kernel/module.c b/kernel/module.c index 599fc85bd2cc..784bf6d8f8c4 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,