aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2009-03-31 15:05:33 -0400
committerRusty Russell <rusty@rustcorp.com.au>2009-03-30 22:35:34 -0400
commit9cb610d8e35fe3ec95a2fe2030b02f85aeea83c1 (patch)
tree282863f8b6560e5373f40e9d6b7f2fa2dcc8e86d
parentc6e665c8f0c18ab3686117905765b5139efd6ebd (diff)
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>
-rw-r--r--kernel/module.c3
1 files changed, 3 insertions, 0 deletions
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,
1961 if (strncmp(secstrings+sechdrs[i].sh_name, ".exit", 5) == 0) 1961 if (strncmp(secstrings+sechdrs[i].sh_name, ".exit", 5) == 0)
1962 sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC; 1962 sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC;
1963#endif 1963#endif
1964 /* Don't keep __versions around; it's just for loading. */
1965 if (strcmp(secstrings + sechdrs[i].sh_name, "__versions") == 0)
1966 sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC;
1964 } 1967 }
1965 1968
1966 modindex = find_sec(hdr, sechdrs, secstrings, 1969 modindex = find_sec(hdr, sechdrs, secstrings,