diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2009-03-31 15:05:33 -0400 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2009-03-30 22:35:34 -0400 |
commit | 9cb610d8e35fe3ec95a2fe2030b02f85aeea83c1 (patch) | |
tree | 282863f8b6560e5373f40e9d6b7f2fa2dcc8e86d /kernel/module.c | |
parent | c6e665c8f0c18ab3686117905765b5139efd6ebd (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>
Diffstat (limited to 'kernel/module.c')
-rw-r--r-- | kernel/module.c | 3 |
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, |