diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2009-04-07 03:42:43 -0400 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2009-04-07 03:42:43 -0400 |
commit | 2e45e77787c9d0720b046eb69856edf43b17e33e (patch) | |
tree | 56c2bd470e3eec849bb8bb0a2263a6ef0b4b7694 /kernel | |
parent | d508afb437daee7cf07da085b635c44a4ebf9b38 (diff) |
Revert "module: remove the SHF_ALLOC flag on the __versions section."
This reverts commit 9cb610d8e35fe3ec95a2fe2030b02f85aeea83c1.
This was an impressively stupid patch. Firstly, we reset the SHF_ALLOC
flag lower down in the same function, so the patch was useless. Even
better, find_sec() ignores sections with SHF_ALLOC not set, so
it breaks CONFIG_MODVERSIONS=y with CONFIG_MODULE_FORCE_LOAD=n, which
refuses to load the module since it can't find the __versions section.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/module.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/kernel/module.c b/kernel/module.c index c268a771595c..05f014efa32c 100644 --- a/kernel/module.c +++ b/kernel/module.c | |||
@@ -1952,9 +1952,6 @@ static noinline struct module *load_module(void __user *umod, | |||
1952 | if (strstarts(secstrings+sechdrs[i].sh_name, ".exit")) | 1952 | if (strstarts(secstrings+sechdrs[i].sh_name, ".exit")) |
1953 | sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC; | 1953 | sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC; |
1954 | #endif | 1954 | #endif |
1955 | /* Don't keep __versions around; it's just for loading. */ | ||
1956 | if (strcmp(secstrings + sechdrs[i].sh_name, "__versions") == 0) | ||
1957 | sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC; | ||
1958 | } | 1955 | } |
1959 | 1956 | ||
1960 | modindex = find_sec(hdr, sechdrs, secstrings, | 1957 | modindex = find_sec(hdr, sechdrs, secstrings, |