|
@@ -43,7 +43,6 @@
|
|
|
#include <linux/device.h>
|
|
|
#include <linux/string.h>
|
|
|
#include <linux/mutex.h>
|
|
|
-#include <linux/unwind.h>
|
|
|
#include <linux/rculist.h>
|
|
|
#include <asm/uaccess.h>
|
|
|
#include <asm/cacheflush.h>
|
|
@@ -1449,8 +1448,6 @@ static void free_module(struct module *mod)
|
|
|
remove_sect_attrs(mod);
|
|
|
mod_kobject_remove(mod);
|
|
|
|
|
|
- unwind_remove_table(mod->unwind_info, 0);
|
|
|
-
|
|
|
/* Arch-specific cleanup. */
|
|
|
module_arch_cleanup(mod);
|
|
|
|
|
@@ -1867,7 +1864,6 @@ static noinline struct module *load_module(void __user *umod,
|
|
|
unsigned int symindex = 0;
|
|
|
unsigned int strindex = 0;
|
|
|
unsigned int modindex, versindex, infoindex, pcpuindex;
|
|
|
- unsigned int unwindex = 0;
|
|
|
unsigned int num_kp, num_mcount;
|
|
|
struct kernel_param *kp;
|
|
|
struct module *mod;
|
|
@@ -1957,9 +1953,6 @@ static noinline struct module *load_module(void __user *umod,
|
|
|
versindex = find_sec(hdr, sechdrs, secstrings, "__versions");
|
|
|
infoindex = find_sec(hdr, sechdrs, secstrings, ".modinfo");
|
|
|
pcpuindex = find_pcpusec(hdr, sechdrs, secstrings);
|
|
|
-#ifdef ARCH_UNWIND_SECTION_NAME
|
|
|
- unwindex = find_sec(hdr, sechdrs, secstrings, ARCH_UNWIND_SECTION_NAME);
|
|
|
-#endif
|
|
|
|
|
|
/* Don't keep modinfo and version sections. */
|
|
|
sechdrs[infoindex].sh_flags &= ~(unsigned long)SHF_ALLOC;
|
|
@@ -1969,8 +1962,6 @@ static noinline struct module *load_module(void __user *umod,
|
|
|
sechdrs[symindex].sh_flags |= SHF_ALLOC;
|
|
|
sechdrs[strindex].sh_flags |= SHF_ALLOC;
|
|
|
#endif
|
|
|
- if (unwindex)
|
|
|
- sechdrs[unwindex].sh_flags |= SHF_ALLOC;
|
|
|
|
|
|
/* Check module struct version now, before we try to use module. */
|
|
|
if (!check_modstruct_version(sechdrs, versindex, mod)) {
|
|
@@ -2267,11 +2258,6 @@ static noinline struct module *load_module(void __user *umod,
|
|
|
add_sect_attrs(mod, hdr->e_shnum, secstrings, sechdrs);
|
|
|
add_notes_attrs(mod, hdr->e_shnum, secstrings, sechdrs);
|
|
|
|
|
|
- /* Size of section 0 is 0, so this works well if no unwind info. */
|
|
|
- mod->unwind_info = unwind_add_table(mod,
|
|
|
- (void *)sechdrs[unwindex].sh_addr,
|
|
|
- sechdrs[unwindex].sh_size);
|
|
|
-
|
|
|
/* Get rid of temporary copy */
|
|
|
vfree(hdr);
|
|
|
|
|
@@ -2370,7 +2356,6 @@ sys_init_module(void __user *umod,
|
|
|
mutex_lock(&module_mutex);
|
|
|
/* Drop initial reference. */
|
|
|
module_put(mod);
|
|
|
- unwind_remove_table(mod->unwind_info, 1);
|
|
|
module_free(mod, mod->module_init);
|
|
|
mod->module_init = NULL;
|
|
|
mod->init_size = 0;
|