diff options
26 files changed, 12 insertions, 777 deletions
diff --git a/arch/alpha/kernel/module.c b/arch/alpha/kernel/module.c index ebc3c894b5a2..2fd00b7077e4 100644 --- a/arch/alpha/kernel/module.c +++ b/arch/alpha/kernel/module.c | |||
@@ -29,20 +29,6 @@ | |||
29 | #define DEBUGP(fmt...) | 29 | #define DEBUGP(fmt...) |
30 | #endif | 30 | #endif |
31 | 31 | ||
32 | void * | ||
33 | module_alloc(unsigned long size) | ||
34 | { | ||
35 | if (size == 0) | ||
36 | return NULL; | ||
37 | return vmalloc(size); | ||
38 | } | ||
39 | |||
40 | void | ||
41 | module_free(struct module *mod, void *module_region) | ||
42 | { | ||
43 | vfree(module_region); | ||
44 | } | ||
45 | |||
46 | /* Allocate the GOT at the end of the core sections. */ | 32 | /* Allocate the GOT at the end of the core sections. */ |
47 | 33 | ||
48 | struct got_entry { | 34 | struct got_entry { |
@@ -156,14 +142,6 @@ module_frob_arch_sections(Elf64_Ehdr *hdr, Elf64_Shdr *sechdrs, | |||
156 | } | 142 | } |
157 | 143 | ||
158 | int | 144 | int |
159 | apply_relocate(Elf64_Shdr *sechdrs, const char *strtab, unsigned int symindex, | ||
160 | unsigned int relsec, struct module *me) | ||
161 | { | ||
162 | printk(KERN_ERR "module %s: REL relocation unsupported\n", me->name); | ||
163 | return -ENOEXEC; | ||
164 | } | ||
165 | |||
166 | int | ||
167 | apply_relocate_add(Elf64_Shdr *sechdrs, const char *strtab, | 145 | apply_relocate_add(Elf64_Shdr *sechdrs, const char *strtab, |
168 | unsigned int symindex, unsigned int relsec, | 146 | unsigned int symindex, unsigned int relsec, |
169 | struct module *me) | 147 | struct module *me) |
@@ -302,15 +280,3 @@ apply_relocate_add(Elf64_Shdr *sechdrs, const char *strtab, | |||
302 | 280 | ||
303 | return 0; | 281 | return 0; |
304 | } | 282 | } |
305 | |||
306 | int | ||
307 | module_finalize(const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs, | ||
308 | struct module *me) | ||
309 | { | ||
310 | return 0; | ||
311 | } | ||
312 | |||
313 | void | ||
314 | module_arch_cleanup(struct module *mod) | ||
315 | { | ||
316 | } | ||
diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c index 016d6a0830a3..05b377616fd5 100644 --- a/arch/arm/kernel/module.c +++ b/arch/arm/kernel/module.c | |||
@@ -43,25 +43,7 @@ void *module_alloc(unsigned long size) | |||
43 | GFP_KERNEL, PAGE_KERNEL_EXEC, -1, | 43 | GFP_KERNEL, PAGE_KERNEL_EXEC, -1, |
44 | __builtin_return_address(0)); | 44 | __builtin_return_address(0)); |
45 | } | 45 | } |
46 | #else /* CONFIG_MMU */ | 46 | #endif |
47 | void *module_alloc(unsigned long size) | ||
48 | { | ||
49 | return size == 0 ? NULL : vmalloc(size); | ||
50 | } | ||
51 | #endif /* !CONFIG_MMU */ | ||
52 | |||
53 | void module_free(struct module *module, void *region) | ||
54 | { | ||
55 | vfree(region); | ||
56 | } | ||
57 | |||
58 | int module_frob_arch_sections(Elf_Ehdr *hdr, | ||
59 | Elf_Shdr *sechdrs, | ||
60 | char *secstrings, | ||
61 | struct module *mod) | ||
62 | { | ||
63 | return 0; | ||
64 | } | ||
65 | 47 | ||
66 | int | 48 | int |
67 | apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, | 49 | apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, |
@@ -265,15 +247,6 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, | |||
265 | return 0; | 247 | return 0; |
266 | } | 248 | } |
267 | 249 | ||
268 | int | ||
269 | apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab, | ||
270 | unsigned int symindex, unsigned int relsec, struct module *module) | ||
271 | { | ||
272 | printk(KERN_ERR "module %s: ADD RELOCATION unsupported\n", | ||
273 | module->name); | ||
274 | return -ENOEXEC; | ||
275 | } | ||
276 | |||
277 | struct mod_unwind_map { | 250 | struct mod_unwind_map { |
278 | const Elf_Shdr *unw_sec; | 251 | const Elf_Shdr *unw_sec; |
279 | const Elf_Shdr *txt_sec; | 252 | const Elf_Shdr *txt_sec; |
diff --git a/arch/avr32/kernel/module.c b/arch/avr32/kernel/module.c index a727f54d64d6..596f7305d93f 100644 --- a/arch/avr32/kernel/module.c +++ b/arch/avr32/kernel/module.c | |||
@@ -19,13 +19,6 @@ | |||
19 | #include <linux/moduleloader.h> | 19 | #include <linux/moduleloader.h> |
20 | #include <linux/vmalloc.h> | 20 | #include <linux/vmalloc.h> |
21 | 21 | ||
22 | void *module_alloc(unsigned long size) | ||
23 | { | ||
24 | if (size == 0) | ||
25 | return NULL; | ||
26 | return vmalloc(size); | ||
27 | } | ||
28 | |||
29 | void module_free(struct module *mod, void *module_region) | 22 | void module_free(struct module *mod, void *module_region) |
30 | { | 23 | { |
31 | vfree(mod->arch.syminfo); | 24 | vfree(mod->arch.syminfo); |
@@ -299,15 +292,6 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab, | |||
299 | return ret; | 292 | return ret; |
300 | } | 293 | } |
301 | 294 | ||
302 | int apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, | ||
303 | unsigned int symindex, unsigned int relindex, | ||
304 | struct module *module) | ||
305 | { | ||
306 | printk(KERN_ERR "module %s: REL relocations are not supported\n", | ||
307 | module->name); | ||
308 | return -ENOEXEC; | ||
309 | } | ||
310 | |||
311 | int module_finalize(const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs, | 295 | int module_finalize(const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs, |
312 | struct module *module) | 296 | struct module *module) |
313 | { | 297 | { |
@@ -316,7 +300,3 @@ int module_finalize(const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs, | |||
316 | 300 | ||
317 | return 0; | 301 | return 0; |
318 | } | 302 | } |
319 | |||
320 | void module_arch_cleanup(struct module *module) | ||
321 | { | ||
322 | } | ||
diff --git a/arch/blackfin/kernel/module.c b/arch/blackfin/kernel/module.c index 35e350cad9d9..4489efc52883 100644 --- a/arch/blackfin/kernel/module.c +++ b/arch/blackfin/kernel/module.c | |||
@@ -16,19 +16,6 @@ | |||
16 | #include <asm/cacheflush.h> | 16 | #include <asm/cacheflush.h> |
17 | #include <asm/uaccess.h> | 17 | #include <asm/uaccess.h> |
18 | 18 | ||
19 | void *module_alloc(unsigned long size) | ||
20 | { | ||
21 | if (size == 0) | ||
22 | return NULL; | ||
23 | return vmalloc(size); | ||
24 | } | ||
25 | |||
26 | /* Free memory returned from module_alloc */ | ||
27 | void module_free(struct module *mod, void *module_region) | ||
28 | { | ||
29 | vfree(module_region); | ||
30 | } | ||
31 | |||
32 | /* Transfer the section to the L1 memory */ | 19 | /* Transfer the section to the L1 memory */ |
33 | int | 20 | int |
34 | module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs, | 21 | module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs, |
@@ -150,14 +137,6 @@ module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs, | |||
150 | return 0; | 137 | return 0; |
151 | } | 138 | } |
152 | 139 | ||
153 | int | ||
154 | apply_relocate(Elf_Shdr * sechdrs, const char *strtab, | ||
155 | unsigned int symindex, unsigned int relsec, struct module *mod) | ||
156 | { | ||
157 | pr_err(".rel unsupported\n"); | ||
158 | return -ENOEXEC; | ||
159 | } | ||
160 | |||
161 | /*************************************************************************/ | 140 | /*************************************************************************/ |
162 | /* FUNCTION : apply_relocate_add */ | 141 | /* FUNCTION : apply_relocate_add */ |
163 | /* ABSTRACT : Blackfin specific relocation handling for the loadable */ | 142 | /* ABSTRACT : Blackfin specific relocation handling for the loadable */ |
diff --git a/arch/cris/kernel/module.c b/arch/cris/kernel/module.c index bcd502f74cda..37400f5869e6 100644 --- a/arch/cris/kernel/module.c +++ b/arch/cris/kernel/module.c | |||
@@ -30,45 +30,19 @@ | |||
30 | #endif | 30 | #endif |
31 | 31 | ||
32 | #ifdef CONFIG_ETRAX_KMALLOCED_MODULES | 32 | #ifdef CONFIG_ETRAX_KMALLOCED_MODULES |
33 | #define MALLOC_MODULE(size) kmalloc(size, GFP_KERNEL) | ||
34 | #define FREE_MODULE(region) kfree(region) | ||
35 | #else | ||
36 | #define MALLOC_MODULE(size) vmalloc_exec(size) | ||
37 | #define FREE_MODULE(region) vfree(region) | ||
38 | #endif | ||
39 | |||
40 | void *module_alloc(unsigned long size) | 33 | void *module_alloc(unsigned long size) |
41 | { | 34 | { |
42 | if (size == 0) | 35 | if (size == 0) |
43 | return NULL; | 36 | return NULL; |
44 | return MALLOC_MODULE(size); | 37 | return kmalloc(size, GFP_KERNEL); |
45 | } | 38 | } |
46 | 39 | ||
47 | |||
48 | /* Free memory returned from module_alloc */ | 40 | /* Free memory returned from module_alloc */ |
49 | void module_free(struct module *mod, void *module_region) | 41 | void module_free(struct module *mod, void *module_region) |
50 | { | 42 | { |
51 | FREE_MODULE(module_region); | 43 | kfree(module_region); |
52 | } | ||
53 | |||
54 | /* We don't need anything special. */ | ||
55 | int module_frob_arch_sections(Elf_Ehdr *hdr, | ||
56 | Elf_Shdr *sechdrs, | ||
57 | char *secstrings, | ||
58 | struct module *mod) | ||
59 | { | ||
60 | return 0; | ||
61 | } | ||
62 | |||
63 | int apply_relocate(Elf32_Shdr *sechdrs, | ||
64 | const char *strtab, | ||
65 | unsigned int symindex, | ||
66 | unsigned int relsec, | ||
67 | struct module *me) | ||
68 | { | ||
69 | printk(KERN_ERR "module %s: REL relocation unsupported\n", me->name); | ||
70 | return -ENOEXEC; | ||
71 | } | 44 | } |
45 | #endif | ||
72 | 46 | ||
73 | int apply_relocate_add(Elf32_Shdr *sechdrs, | 47 | int apply_relocate_add(Elf32_Shdr *sechdrs, |
74 | const char *strtab, | 48 | const char *strtab, |
@@ -108,14 +82,3 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, | |||
108 | 82 | ||
109 | return 0; | 83 | return 0; |
110 | } | 84 | } |
111 | |||
112 | int module_finalize(const Elf_Ehdr *hdr, | ||
113 | const Elf_Shdr *sechdrs, | ||
114 | struct module *me) | ||
115 | { | ||
116 | return 0; | ||
117 | } | ||
118 | |||
119 | void module_arch_cleanup(struct module *mod) | ||
120 | { | ||
121 | } | ||
diff --git a/arch/frv/kernel/module.c b/arch/frv/kernel/module.c index 711763c8a6f3..9d9835f1fe2b 100644 --- a/arch/frv/kernel/module.c +++ b/arch/frv/kernel/module.c | |||
@@ -22,57 +22,6 @@ | |||
22 | #define DEBUGP(fmt...) | 22 | #define DEBUGP(fmt...) |
23 | #endif | 23 | #endif |
24 | 24 | ||
25 | void *module_alloc(unsigned long size) | 25 | /* TODO: At least one of apply_relocate or apply_relocate_add must be |
26 | { | 26 | * implemented in order to get working module support. |
27 | if (size == 0) | 27 | */ |
28 | return NULL; | ||
29 | |||
30 | return vmalloc_exec(size); | ||
31 | } | ||
32 | |||
33 | |||
34 | /* Free memory returned from module_alloc */ | ||
35 | void module_free(struct module *mod, void *module_region) | ||
36 | { | ||
37 | vfree(module_region); | ||
38 | } | ||
39 | |||
40 | /* We don't need anything special. */ | ||
41 | int module_frob_arch_sections(Elf_Ehdr *hdr, | ||
42 | Elf_Shdr *sechdrs, | ||
43 | char *secstrings, | ||
44 | struct module *mod) | ||
45 | { | ||
46 | return 0; | ||
47 | } | ||
48 | |||
49 | int apply_relocate(Elf32_Shdr *sechdrs, | ||
50 | const char *strtab, | ||
51 | unsigned int symindex, | ||
52 | unsigned int relsec, | ||
53 | struct module *me) | ||
54 | { | ||
55 | printk(KERN_ERR "module %s: ADD RELOCATION unsupported\n", me->name); | ||
56 | return -ENOEXEC; | ||
57 | } | ||
58 | |||
59 | int apply_relocate_add(Elf32_Shdr *sechdrs, | ||
60 | const char *strtab, | ||
61 | unsigned int symindex, | ||
62 | unsigned int relsec, | ||
63 | struct module *me) | ||
64 | { | ||
65 | printk(KERN_ERR "module %s: ADD RELOCATION unsupported\n", me->name); | ||
66 | return -ENOEXEC; | ||
67 | } | ||
68 | |||
69 | int module_finalize(const Elf_Ehdr *hdr, | ||
70 | const Elf_Shdr *sechdrs, | ||
71 | struct module *me) | ||
72 | { | ||
73 | return 0; | ||
74 | } | ||
75 | |||
76 | void module_arch_cleanup(struct module *mod) | ||
77 | { | ||
78 | } | ||
diff --git a/arch/h8300/kernel/module.c b/arch/h8300/kernel/module.c index db4953dc4e1b..1d526e05db19 100644 --- a/arch/h8300/kernel/module.c +++ b/arch/h8300/kernel/module.c | |||
@@ -11,40 +11,6 @@ | |||
11 | #define DEBUGP(fmt...) | 11 | #define DEBUGP(fmt...) |
12 | #endif | 12 | #endif |
13 | 13 | ||
14 | void *module_alloc(unsigned long size) | ||
15 | { | ||
16 | if (size == 0) | ||
17 | return NULL; | ||
18 | return vmalloc(size); | ||
19 | } | ||
20 | |||
21 | |||
22 | /* Free memory returned from module_alloc */ | ||
23 | void module_free(struct module *mod, void *module_region) | ||
24 | { | ||
25 | vfree(module_region); | ||
26 | } | ||
27 | |||
28 | /* We don't need anything special. */ | ||
29 | int module_frob_arch_sections(Elf_Ehdr *hdr, | ||
30 | Elf_Shdr *sechdrs, | ||
31 | char *secstrings, | ||
32 | struct module *mod) | ||
33 | { | ||
34 | return 0; | ||
35 | } | ||
36 | |||
37 | int apply_relocate(Elf32_Shdr *sechdrs, | ||
38 | const char *strtab, | ||
39 | unsigned int symindex, | ||
40 | unsigned int relsec, | ||
41 | struct module *me) | ||
42 | { | ||
43 | printk(KERN_ERR "module %s: RELOCATION unsupported\n", | ||
44 | me->name); | ||
45 | return -ENOEXEC; | ||
46 | } | ||
47 | |||
48 | int apply_relocate_add(Elf32_Shdr *sechdrs, | 14 | int apply_relocate_add(Elf32_Shdr *sechdrs, |
49 | const char *strtab, | 15 | const char *strtab, |
50 | unsigned int symindex, | 16 | unsigned int symindex, |
@@ -107,14 +73,3 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, | |||
107 | me->name, rela[i].r_offset); | 73 | me->name, rela[i].r_offset); |
108 | return -ENOEXEC; | 74 | return -ENOEXEC; |
109 | } | 75 | } |
110 | |||
111 | int module_finalize(const Elf_Ehdr *hdr, | ||
112 | const Elf_Shdr *sechdrs, | ||
113 | struct module *me) | ||
114 | { | ||
115 | return 0; | ||
116 | } | ||
117 | |||
118 | void module_arch_cleanup(struct module *mod) | ||
119 | { | ||
120 | } | ||
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c index 1481b0a28ca0..24603be24c14 100644 --- a/arch/ia64/kernel/module.c +++ b/arch/ia64/kernel/module.c | |||
@@ -304,14 +304,6 @@ plt_target (struct plt_entry *plt) | |||
304 | 304 | ||
305 | #endif /* !USE_BRL */ | 305 | #endif /* !USE_BRL */ |
306 | 306 | ||
307 | void * | ||
308 | module_alloc (unsigned long size) | ||
309 | { | ||
310 | if (!size) | ||
311 | return NULL; | ||
312 | return vmalloc(size); | ||
313 | } | ||
314 | |||
315 | void | 307 | void |
316 | module_free (struct module *mod, void *module_region) | 308 | module_free (struct module *mod, void *module_region) |
317 | { | 309 | { |
@@ -853,14 +845,6 @@ apply_relocate_add (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symind | |||
853 | return 0; | 845 | return 0; |
854 | } | 846 | } |
855 | 847 | ||
856 | int | ||
857 | apply_relocate (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symindex, | ||
858 | unsigned int relsec, struct module *mod) | ||
859 | { | ||
860 | printk(KERN_ERR "module %s: REL relocs in section %u unsupported\n", mod->name, relsec); | ||
861 | return -ENOEXEC; | ||
862 | } | ||
863 | |||
864 | /* | 848 | /* |
865 | * Modules contain a single unwind table which covers both the core and the init text | 849 | * Modules contain a single unwind table which covers both the core and the init text |
866 | * sections but since the two are not contiguous, we need to split this table up such that | 850 | * sections but since the two are not contiguous, we need to split this table up such that |
diff --git a/arch/m32r/kernel/module.c b/arch/m32r/kernel/module.c index cb5f37d78d49..3071fe83ffc8 100644 --- a/arch/m32r/kernel/module.c +++ b/arch/m32r/kernel/module.c | |||
@@ -28,33 +28,6 @@ | |||
28 | #define DEBUGP(fmt...) | 28 | #define DEBUGP(fmt...) |
29 | #endif | 29 | #endif |
30 | 30 | ||
31 | void *module_alloc(unsigned long size) | ||
32 | { | ||
33 | if (size == 0) | ||
34 | return NULL; | ||
35 | #ifdef CONFIG_MMU | ||
36 | return vmalloc_exec(size); | ||
37 | #else | ||
38 | return vmalloc(size); | ||
39 | #endif | ||
40 | } | ||
41 | |||
42 | |||
43 | /* Free memory returned from module_alloc */ | ||
44 | void module_free(struct module *mod, void *module_region) | ||
45 | { | ||
46 | vfree(module_region); | ||
47 | } | ||
48 | |||
49 | /* We don't need anything special. */ | ||
50 | int module_frob_arch_sections(Elf_Ehdr *hdr, | ||
51 | Elf_Shdr *sechdrs, | ||
52 | char *secstrings, | ||
53 | struct module *mod) | ||
54 | { | ||
55 | return 0; | ||
56 | } | ||
57 | |||
58 | #define COPY_UNALIGNED_WORD(sw, tw, align) \ | 31 | #define COPY_UNALIGNED_WORD(sw, tw, align) \ |
59 | { \ | 32 | { \ |
60 | void *__s = &(sw), *__t = &(tw); \ | 33 | void *__s = &(sw), *__t = &(tw); \ |
@@ -243,14 +216,3 @@ int apply_relocate(Elf32_Shdr *sechdrs, | |||
243 | return 0; | 216 | return 0; |
244 | 217 | ||
245 | } | 218 | } |
246 | |||
247 | int module_finalize(const Elf_Ehdr *hdr, | ||
248 | const Elf_Shdr *sechdrs, | ||
249 | struct module *me) | ||
250 | { | ||
251 | return 0; | ||
252 | } | ||
253 | |||
254 | void module_arch_cleanup(struct module *mod) | ||
255 | { | ||
256 | } | ||
diff --git a/arch/m68k/kernel/module_mm.c b/arch/m68k/kernel/module_mm.c index cd6bcb1c957e..ceafc47c96d5 100644 --- a/arch/m68k/kernel/module_mm.c +++ b/arch/m68k/kernel/module_mm.c | |||
@@ -19,29 +19,6 @@ | |||
19 | 19 | ||
20 | #ifdef CONFIG_MODULES | 20 | #ifdef CONFIG_MODULES |
21 | 21 | ||
22 | void *module_alloc(unsigned long size) | ||
23 | { | ||
24 | if (size == 0) | ||
25 | return NULL; | ||
26 | return vmalloc(size); | ||
27 | } | ||
28 | |||
29 | |||
30 | /* Free memory returned from module_alloc */ | ||
31 | void module_free(struct module *mod, void *module_region) | ||
32 | { | ||
33 | vfree(module_region); | ||
34 | } | ||
35 | |||
36 | /* We don't need anything special. */ | ||
37 | int module_frob_arch_sections(Elf_Ehdr *hdr, | ||
38 | Elf_Shdr *sechdrs, | ||
39 | char *secstrings, | ||
40 | struct module *mod) | ||
41 | { | ||
42 | return 0; | ||
43 | } | ||
44 | |||
45 | int apply_relocate(Elf32_Shdr *sechdrs, | 22 | int apply_relocate(Elf32_Shdr *sechdrs, |
46 | const char *strtab, | 23 | const char *strtab, |
47 | unsigned int symindex, | 24 | unsigned int symindex, |
@@ -131,10 +108,6 @@ int module_finalize(const Elf_Ehdr *hdr, | |||
131 | return 0; | 108 | return 0; |
132 | } | 109 | } |
133 | 110 | ||
134 | void module_arch_cleanup(struct module *mod) | ||
135 | { | ||
136 | } | ||
137 | |||
138 | #endif /* CONFIG_MODULES */ | 111 | #endif /* CONFIG_MODULES */ |
139 | 112 | ||
140 | void module_fixup(struct module *mod, struct m68k_fixup_info *start, | 113 | void module_fixup(struct module *mod, struct m68k_fixup_info *start, |
diff --git a/arch/m68k/kernel/module_no.c b/arch/m68k/kernel/module_no.c index d11ffae7956a..5a097c6063fa 100644 --- a/arch/m68k/kernel/module_no.c +++ b/arch/m68k/kernel/module_no.c | |||
@@ -11,29 +11,6 @@ | |||
11 | #define DEBUGP(fmt...) | 11 | #define DEBUGP(fmt...) |
12 | #endif | 12 | #endif |
13 | 13 | ||
14 | void *module_alloc(unsigned long size) | ||
15 | { | ||
16 | if (size == 0) | ||
17 | return NULL; | ||
18 | return vmalloc(size); | ||
19 | } | ||
20 | |||
21 | |||
22 | /* Free memory returned from module_alloc */ | ||
23 | void module_free(struct module *mod, void *module_region) | ||
24 | { | ||
25 | vfree(module_region); | ||
26 | } | ||
27 | |||
28 | /* We don't need anything special. */ | ||
29 | int module_frob_arch_sections(Elf_Ehdr *hdr, | ||
30 | Elf_Shdr *sechdrs, | ||
31 | char *secstrings, | ||
32 | struct module *mod) | ||
33 | { | ||
34 | return 0; | ||
35 | } | ||
36 | |||
37 | int apply_relocate(Elf32_Shdr *sechdrs, | 14 | int apply_relocate(Elf32_Shdr *sechdrs, |
38 | const char *strtab, | 15 | const char *strtab, |
39 | unsigned int symindex, | 16 | unsigned int symindex, |
@@ -113,14 +90,3 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, | |||
113 | } | 90 | } |
114 | return 0; | 91 | return 0; |
115 | } | 92 | } |
116 | |||
117 | int module_finalize(const Elf_Ehdr *hdr, | ||
118 | const Elf_Shdr *sechdrs, | ||
119 | struct module *me) | ||
120 | { | ||
121 | return 0; | ||
122 | } | ||
123 | |||
124 | void module_arch_cleanup(struct module *mod) | ||
125 | { | ||
126 | } | ||
diff --git a/arch/microblaze/kernel/module.c b/arch/microblaze/kernel/module.c index 0e73f6606547..142426f631bb 100644 --- a/arch/microblaze/kernel/module.c +++ b/arch/microblaze/kernel/module.c | |||
@@ -18,37 +18,6 @@ | |||
18 | #include <asm/pgtable.h> | 18 | #include <asm/pgtable.h> |
19 | #include <asm/cacheflush.h> | 19 | #include <asm/cacheflush.h> |
20 | 20 | ||
21 | void *module_alloc(unsigned long size) | ||
22 | { | ||
23 | void *ret; | ||
24 | ret = (size == 0) ? NULL : vmalloc(size); | ||
25 | pr_debug("module_alloc (%08lx@%08lx)\n", size, (unsigned long int)ret); | ||
26 | return ret; | ||
27 | } | ||
28 | |||
29 | void module_free(struct module *module, void *region) | ||
30 | { | ||
31 | pr_debug("module_free(%s,%08lx)\n", module->name, | ||
32 | (unsigned long)region); | ||
33 | vfree(region); | ||
34 | } | ||
35 | |||
36 | int module_frob_arch_sections(Elf_Ehdr *hdr, | ||
37 | Elf_Shdr *sechdrs, | ||
38 | char *secstrings, | ||
39 | struct module *mod) | ||
40 | { | ||
41 | return 0; | ||
42 | } | ||
43 | |||
44 | int apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, | ||
45 | unsigned int symindex, unsigned int relsec, struct module *module) | ||
46 | { | ||
47 | printk(KERN_ERR "module %s: ADD RELOCATION unsupported\n", | ||
48 | module->name); | ||
49 | return -ENOEXEC; | ||
50 | } | ||
51 | |||
52 | int apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab, | 21 | int apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab, |
53 | unsigned int symindex, unsigned int relsec, struct module *module) | 22 | unsigned int symindex, unsigned int relsec, struct module *module) |
54 | { | 23 | { |
@@ -155,7 +124,3 @@ int module_finalize(const Elf32_Ehdr *hdr, const Elf_Shdr *sechdrs, | |||
155 | flush_dcache(); | 124 | flush_dcache(); |
156 | return 0; | 125 | return 0; |
157 | } | 126 | } |
158 | |||
159 | void module_arch_cleanup(struct module *mod) | ||
160 | { | ||
161 | } | ||
diff --git a/arch/mips/kernel/module.c b/arch/mips/kernel/module.c index dd940b701963..4b930ac4aff2 100644 --- a/arch/mips/kernel/module.c +++ b/arch/mips/kernel/module.c | |||
@@ -45,30 +45,14 @@ static struct mips_hi16 *mips_hi16_list; | |||
45 | static LIST_HEAD(dbe_list); | 45 | static LIST_HEAD(dbe_list); |
46 | static DEFINE_SPINLOCK(dbe_lock); | 46 | static DEFINE_SPINLOCK(dbe_lock); |
47 | 47 | ||
48 | #ifdef MODULE_START | ||
48 | void *module_alloc(unsigned long size) | 49 | void *module_alloc(unsigned long size) |
49 | { | 50 | { |
50 | #ifdef MODULE_START | ||
51 | return __vmalloc_node_range(size, 1, MODULE_START, MODULE_END, | 51 | return __vmalloc_node_range(size, 1, MODULE_START, MODULE_END, |
52 | GFP_KERNEL, PAGE_KERNEL, -1, | 52 | GFP_KERNEL, PAGE_KERNEL, -1, |
53 | __builtin_return_address(0)); | 53 | __builtin_return_address(0)); |
54 | #else | ||
55 | if (size == 0) | ||
56 | return NULL; | ||
57 | return vmalloc(size); | ||
58 | #endif | ||
59 | } | ||
60 | |||
61 | /* Free memory returned from module_alloc */ | ||
62 | void module_free(struct module *mod, void *module_region) | ||
63 | { | ||
64 | vfree(module_region); | ||
65 | } | ||
66 | |||
67 | int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs, | ||
68 | char *secstrings, struct module *mod) | ||
69 | { | ||
70 | return 0; | ||
71 | } | 54 | } |
55 | #endif | ||
72 | 56 | ||
73 | static int apply_r_mips_none(struct module *me, u32 *location, Elf_Addr v) | 57 | static int apply_r_mips_none(struct module *me, u32 *location, Elf_Addr v) |
74 | { | 58 | { |
diff --git a/arch/mn10300/kernel/module.c b/arch/mn10300/kernel/module.c index 196a111e2e29..216ad23c9570 100644 --- a/arch/mn10300/kernel/module.c +++ b/arch/mn10300/kernel/module.c | |||
@@ -32,36 +32,6 @@ | |||
32 | #define DEBUGP(fmt, ...) | 32 | #define DEBUGP(fmt, ...) |
33 | #endif | 33 | #endif |
34 | 34 | ||
35 | /* | ||
36 | * allocate storage for a module | ||
37 | */ | ||
38 | void *module_alloc(unsigned long size) | ||
39 | { | ||
40 | if (size == 0) | ||
41 | return NULL; | ||
42 | return vmalloc_exec(size); | ||
43 | } | ||
44 | |||
45 | /* | ||
46 | * free memory returned from module_alloc() | ||
47 | */ | ||
48 | void module_free(struct module *mod, void *module_region) | ||
49 | { | ||
50 | vfree(module_region); | ||
51 | } | ||
52 | |||
53 | /* | ||
54 | * allow the arch to fix up the section table | ||
55 | * - we don't need anything special | ||
56 | */ | ||
57 | int module_frob_arch_sections(Elf_Ehdr *hdr, | ||
58 | Elf_Shdr *sechdrs, | ||
59 | char *secstrings, | ||
60 | struct module *mod) | ||
61 | { | ||
62 | return 0; | ||
63 | } | ||
64 | |||
65 | static void reloc_put16(uint8_t *p, uint32_t val) | 35 | static void reloc_put16(uint8_t *p, uint32_t val) |
66 | { | 36 | { |
67 | p[0] = val & 0xff; | 37 | p[0] = val & 0xff; |
@@ -81,20 +51,6 @@ static void reloc_put32(uint8_t *p, uint32_t val) | |||
81 | } | 51 | } |
82 | 52 | ||
83 | /* | 53 | /* |
84 | * apply a REL relocation | ||
85 | */ | ||
86 | int apply_relocate(Elf32_Shdr *sechdrs, | ||
87 | const char *strtab, | ||
88 | unsigned int symindex, | ||
89 | unsigned int relsec, | ||
90 | struct module *me) | ||
91 | { | ||
92 | printk(KERN_ERR "module %s: RELOCATION unsupported\n", | ||
93 | me->name); | ||
94 | return -ENOEXEC; | ||
95 | } | ||
96 | |||
97 | /* | ||
98 | * apply a RELA relocation | 54 | * apply a RELA relocation |
99 | */ | 55 | */ |
100 | int apply_relocate_add(Elf32_Shdr *sechdrs, | 56 | int apply_relocate_add(Elf32_Shdr *sechdrs, |
@@ -198,20 +154,3 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, | |||
198 | } | 154 | } |
199 | return 0; | 155 | return 0; |
200 | } | 156 | } |
201 | |||
202 | /* | ||
203 | * finish loading the module | ||
204 | */ | ||
205 | int module_finalize(const Elf_Ehdr *hdr, | ||
206 | const Elf_Shdr *sechdrs, | ||
207 | struct module *me) | ||
208 | { | ||
209 | return 0; | ||
210 | } | ||
211 | |||
212 | /* | ||
213 | * finish clearing the module | ||
214 | */ | ||
215 | void module_arch_cleanup(struct module *mod) | ||
216 | { | ||
217 | } | ||
diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c index cedbbb8b18d9..5e34ccf39a49 100644 --- a/arch/parisc/kernel/module.c +++ b/arch/parisc/kernel/module.c | |||
@@ -540,18 +540,6 @@ static Elf_Addr get_stub(struct module *me, unsigned long value, long addend, | |||
540 | return (Elf_Addr)stub; | 540 | return (Elf_Addr)stub; |
541 | } | 541 | } |
542 | 542 | ||
543 | int apply_relocate(Elf_Shdr *sechdrs, | ||
544 | const char *strtab, | ||
545 | unsigned int symindex, | ||
546 | unsigned int relsec, | ||
547 | struct module *me) | ||
548 | { | ||
549 | /* parisc should not need this ... */ | ||
550 | printk(KERN_ERR "module %s: RELOCATION unsupported\n", | ||
551 | me->name); | ||
552 | return -ENOEXEC; | ||
553 | } | ||
554 | |||
555 | #ifndef CONFIG_64BIT | 543 | #ifndef CONFIG_64BIT |
556 | int apply_relocate_add(Elf_Shdr *sechdrs, | 544 | int apply_relocate_add(Elf_Shdr *sechdrs, |
557 | const char *strtab, | 545 | const char *strtab, |
diff --git a/arch/powerpc/kernel/module.c b/arch/powerpc/kernel/module.c index 49cee9df225b..a1cd701b5753 100644 --- a/arch/powerpc/kernel/module.c +++ b/arch/powerpc/kernel/module.c | |||
@@ -31,20 +31,6 @@ | |||
31 | 31 | ||
32 | LIST_HEAD(module_bug_list); | 32 | LIST_HEAD(module_bug_list); |
33 | 33 | ||
34 | void *module_alloc(unsigned long size) | ||
35 | { | ||
36 | if (size == 0) | ||
37 | return NULL; | ||
38 | |||
39 | return vmalloc_exec(size); | ||
40 | } | ||
41 | |||
42 | /* Free memory returned from module_alloc */ | ||
43 | void module_free(struct module *mod, void *module_region) | ||
44 | { | ||
45 | vfree(module_region); | ||
46 | } | ||
47 | |||
48 | static const Elf_Shdr *find_section(const Elf_Ehdr *hdr, | 34 | static const Elf_Shdr *find_section(const Elf_Ehdr *hdr, |
49 | const Elf_Shdr *sechdrs, | 35 | const Elf_Shdr *sechdrs, |
50 | const char *name) | 36 | const char *name) |
@@ -93,7 +79,3 @@ int module_finalize(const Elf_Ehdr *hdr, | |||
93 | 79 | ||
94 | return 0; | 80 | return 0; |
95 | } | 81 | } |
96 | |||
97 | void module_arch_cleanup(struct module *mod) | ||
98 | { | ||
99 | } | ||
diff --git a/arch/powerpc/kernel/module_32.c b/arch/powerpc/kernel/module_32.c index f832773fc28e..0b6d79617d7b 100644 --- a/arch/powerpc/kernel/module_32.c +++ b/arch/powerpc/kernel/module_32.c | |||
@@ -174,17 +174,6 @@ int module_frob_arch_sections(Elf32_Ehdr *hdr, | |||
174 | return 0; | 174 | return 0; |
175 | } | 175 | } |
176 | 176 | ||
177 | int apply_relocate(Elf32_Shdr *sechdrs, | ||
178 | const char *strtab, | ||
179 | unsigned int symindex, | ||
180 | unsigned int relsec, | ||
181 | struct module *module) | ||
182 | { | ||
183 | printk(KERN_ERR "%s: Non-ADD RELOCATION unsupported\n", | ||
184 | module->name); | ||
185 | return -ENOEXEC; | ||
186 | } | ||
187 | |||
188 | static inline int entry_matches(struct ppc_plt_entry *entry, Elf32_Addr val) | 177 | static inline int entry_matches(struct ppc_plt_entry *entry, Elf32_Addr val) |
189 | { | 178 | { |
190 | if (entry->jump[0] == 0x3d600000 + ((val + 0x8000) >> 16) | 179 | if (entry->jump[0] == 0x3d600000 + ((val + 0x8000) >> 16) |
diff --git a/arch/powerpc/kernel/module_64.c b/arch/powerpc/kernel/module_64.c index 8fbb12508bf3..9f44a775a106 100644 --- a/arch/powerpc/kernel/module_64.c +++ b/arch/powerpc/kernel/module_64.c | |||
@@ -243,16 +243,6 @@ int module_frob_arch_sections(Elf64_Ehdr *hdr, | |||
243 | return 0; | 243 | return 0; |
244 | } | 244 | } |
245 | 245 | ||
246 | int apply_relocate(Elf64_Shdr *sechdrs, | ||
247 | const char *strtab, | ||
248 | unsigned int symindex, | ||
249 | unsigned int relsec, | ||
250 | struct module *me) | ||
251 | { | ||
252 | printk(KERN_ERR "%s: Non-ADD RELOCATION unsupported\n", me->name); | ||
253 | return -ENOEXEC; | ||
254 | } | ||
255 | |||
256 | /* r2 is the TOC pointer: it actually points 0x8000 into the TOC (this | 246 | /* r2 is the TOC pointer: it actually points 0x8000 into the TOC (this |
257 | gives the value maximum span in an instruction which uses a signed | 247 | gives the value maximum span in an instruction which uses a signed |
258 | offset) */ | 248 | offset) */ |
diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c index f7167ee4604c..dfcb3436bad0 100644 --- a/arch/s390/kernel/module.c +++ b/arch/s390/kernel/module.c | |||
@@ -45,13 +45,6 @@ | |||
45 | #define PLT_ENTRY_SIZE 20 | 45 | #define PLT_ENTRY_SIZE 20 |
46 | #endif /* CONFIG_64BIT */ | 46 | #endif /* CONFIG_64BIT */ |
47 | 47 | ||
48 | void *module_alloc(unsigned long size) | ||
49 | { | ||
50 | if (size == 0) | ||
51 | return NULL; | ||
52 | return vmalloc(size); | ||
53 | } | ||
54 | |||
55 | /* Free memory returned from module_alloc */ | 48 | /* Free memory returned from module_alloc */ |
56 | void module_free(struct module *mod, void *module_region) | 49 | void module_free(struct module *mod, void *module_region) |
57 | { | 50 | { |
@@ -176,15 +169,6 @@ module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs, | |||
176 | return 0; | 169 | return 0; |
177 | } | 170 | } |
178 | 171 | ||
179 | int | ||
180 | apply_relocate(Elf_Shdr *sechdrs, const char *strtab, unsigned int symindex, | ||
181 | unsigned int relsec, struct module *me) | ||
182 | { | ||
183 | printk(KERN_ERR "module %s: RELOCATION unsupported\n", | ||
184 | me->name); | ||
185 | return -ENOEXEC; | ||
186 | } | ||
187 | |||
188 | static int | 172 | static int |
189 | apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab, | 173 | apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab, |
190 | struct module *me) | 174 | struct module *me) |
@@ -409,7 +393,3 @@ int module_finalize(const Elf_Ehdr *hdr, | |||
409 | me->arch.syminfo = NULL; | 393 | me->arch.syminfo = NULL; |
410 | return 0; | 394 | return 0; |
411 | } | 395 | } |
412 | |||
413 | void module_arch_cleanup(struct module *mod) | ||
414 | { | ||
415 | } | ||
diff --git a/arch/score/kernel/module.c b/arch/score/kernel/module.c index 4de8d47becd3..469e3b64e2f2 100644 --- a/arch/score/kernel/module.c +++ b/arch/score/kernel/module.c | |||
@@ -27,23 +27,6 @@ | |||
27 | #include <linux/module.h> | 27 | #include <linux/module.h> |
28 | #include <linux/vmalloc.h> | 28 | #include <linux/vmalloc.h> |
29 | 29 | ||
30 | void *module_alloc(unsigned long size) | ||
31 | { | ||
32 | return size ? vmalloc(size) : NULL; | ||
33 | } | ||
34 | |||
35 | /* Free memory returned from module_alloc */ | ||
36 | void module_free(struct module *mod, void *module_region) | ||
37 | { | ||
38 | vfree(module_region); | ||
39 | } | ||
40 | |||
41 | int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs, | ||
42 | char *secstrings, struct module *mod) | ||
43 | { | ||
44 | return 0; | ||
45 | } | ||
46 | |||
47 | int apply_relocate(Elf_Shdr *sechdrs, const char *strtab, | 30 | int apply_relocate(Elf_Shdr *sechdrs, const char *strtab, |
48 | unsigned int symindex, unsigned int relindex, | 31 | unsigned int symindex, unsigned int relindex, |
49 | struct module *me) | 32 | struct module *me) |
@@ -146,6 +129,9 @@ int apply_relocate_add(Elf_Shdr *sechdrs, const char *strtab, | |||
146 | unsigned int symindex, unsigned int relsec, | 129 | unsigned int symindex, unsigned int relsec, |
147 | struct module *me) | 130 | struct module *me) |
148 | { | 131 | { |
132 | /* Non-standard return value... most other arch's return -ENOEXEC | ||
133 | * for an unsupported relocation variant | ||
134 | */ | ||
149 | return 0; | 135 | return 0; |
150 | } | 136 | } |
151 | 137 | ||
@@ -154,12 +140,3 @@ const struct exception_table_entry *search_module_dbetables(unsigned long addr) | |||
154 | { | 140 | { |
155 | return NULL; | 141 | return NULL; |
156 | } | 142 | } |
157 | |||
158 | /* Put in dbe list if necessary. */ | ||
159 | int module_finalize(const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs, | ||
160 | struct module *me) | ||
161 | { | ||
162 | return 0; | ||
163 | } | ||
164 | |||
165 | void module_arch_cleanup(struct module *mod) {} | ||
diff --git a/arch/sh/kernel/module.c b/arch/sh/kernel/module.c index 19b1f8826aef..1b525dedd29a 100644 --- a/arch/sh/kernel/module.c +++ b/arch/sh/kernel/module.c | |||
@@ -34,30 +34,6 @@ | |||
34 | #include <asm/unaligned.h> | 34 | #include <asm/unaligned.h> |
35 | #include <asm/dwarf.h> | 35 | #include <asm/dwarf.h> |
36 | 36 | ||
37 | void *module_alloc(unsigned long size) | ||
38 | { | ||
39 | if (size == 0) | ||
40 | return NULL; | ||
41 | |||
42 | return vmalloc_exec(size); | ||
43 | } | ||
44 | |||
45 | |||
46 | /* Free memory returned from module_alloc */ | ||
47 | void module_free(struct module *mod, void *module_region) | ||
48 | { | ||
49 | vfree(module_region); | ||
50 | } | ||
51 | |||
52 | /* We don't need anything special. */ | ||
53 | int module_frob_arch_sections(Elf_Ehdr *hdr, | ||
54 | Elf_Shdr *sechdrs, | ||
55 | char *secstrings, | ||
56 | struct module *mod) | ||
57 | { | ||
58 | return 0; | ||
59 | } | ||
60 | |||
61 | int apply_relocate_add(Elf32_Shdr *sechdrs, | 37 | int apply_relocate_add(Elf32_Shdr *sechdrs, |
62 | const char *strtab, | 38 | const char *strtab, |
63 | unsigned int symindex, | 39 | unsigned int symindex, |
@@ -133,17 +109,6 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, | |||
133 | return 0; | 109 | return 0; |
134 | } | 110 | } |
135 | 111 | ||
136 | int apply_relocate(Elf32_Shdr *sechdrs, | ||
137 | const char *strtab, | ||
138 | unsigned int symindex, | ||
139 | unsigned int relsec, | ||
140 | struct module *me) | ||
141 | { | ||
142 | printk(KERN_ERR "module %s: REL RELOCATION unsupported\n", | ||
143 | me->name); | ||
144 | return -ENOEXEC; | ||
145 | } | ||
146 | |||
147 | int module_finalize(const Elf_Ehdr *hdr, | 112 | int module_finalize(const Elf_Ehdr *hdr, |
148 | const Elf_Shdr *sechdrs, | 113 | const Elf_Shdr *sechdrs, |
149 | struct module *me) | 114 | struct module *me) |
diff --git a/arch/sparc/kernel/module.c b/arch/sparc/kernel/module.c index 99ba5baa9497..da0c6c70ccb2 100644 --- a/arch/sparc/kernel/module.c +++ b/arch/sparc/kernel/module.c | |||
@@ -68,12 +68,6 @@ void *module_alloc(unsigned long size) | |||
68 | return ret; | 68 | return ret; |
69 | } | 69 | } |
70 | 70 | ||
71 | /* Free memory returned from module_core_alloc/module_init_alloc */ | ||
72 | void module_free(struct module *mod, void *module_region) | ||
73 | { | ||
74 | vfree(module_region); | ||
75 | } | ||
76 | |||
77 | /* Make generic code ignore STT_REGISTER dummy undefined symbols. */ | 71 | /* Make generic code ignore STT_REGISTER dummy undefined symbols. */ |
78 | int module_frob_arch_sections(Elf_Ehdr *hdr, | 72 | int module_frob_arch_sections(Elf_Ehdr *hdr, |
79 | Elf_Shdr *sechdrs, | 73 | Elf_Shdr *sechdrs, |
@@ -107,17 +101,6 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, | |||
107 | return 0; | 101 | return 0; |
108 | } | 102 | } |
109 | 103 | ||
110 | int apply_relocate(Elf_Shdr *sechdrs, | ||
111 | const char *strtab, | ||
112 | unsigned int symindex, | ||
113 | unsigned int relsec, | ||
114 | struct module *me) | ||
115 | { | ||
116 | printk(KERN_ERR "module %s: non-ADD RELOCATION unsupported\n", | ||
117 | me->name); | ||
118 | return -ENOEXEC; | ||
119 | } | ||
120 | |||
121 | int apply_relocate_add(Elf_Shdr *sechdrs, | 104 | int apply_relocate_add(Elf_Shdr *sechdrs, |
122 | const char *strtab, | 105 | const char *strtab, |
123 | unsigned int symindex, | 106 | unsigned int symindex, |
@@ -239,15 +222,4 @@ int module_finalize(const Elf_Ehdr *hdr, | |||
239 | 222 | ||
240 | return 0; | 223 | return 0; |
241 | } | 224 | } |
242 | #else | ||
243 | int module_finalize(const Elf_Ehdr *hdr, | ||
244 | const Elf_Shdr *sechdrs, | ||
245 | struct module *me) | ||
246 | { | ||
247 | return 0; | ||
248 | } | ||
249 | #endif /* CONFIG_SPARC64 */ | 225 | #endif /* CONFIG_SPARC64 */ |
250 | |||
251 | void module_arch_cleanup(struct module *mod) | ||
252 | { | ||
253 | } | ||
diff --git a/arch/tile/kernel/module.c b/arch/tile/kernel/module.c index f68df69f1f67..28fa6ece9d3a 100644 --- a/arch/tile/kernel/module.c +++ b/arch/tile/kernel/module.c | |||
@@ -98,25 +98,6 @@ void module_free(struct module *mod, void *module_region) | |||
98 | */ | 98 | */ |
99 | } | 99 | } |
100 | 100 | ||
101 | /* We don't need anything special. */ | ||
102 | int module_frob_arch_sections(Elf_Ehdr *hdr, | ||
103 | Elf_Shdr *sechdrs, | ||
104 | char *secstrings, | ||
105 | struct module *mod) | ||
106 | { | ||
107 | return 0; | ||
108 | } | ||
109 | |||
110 | int apply_relocate(Elf_Shdr *sechdrs, | ||
111 | const char *strtab, | ||
112 | unsigned int symindex, | ||
113 | unsigned int relsec, | ||
114 | struct module *me) | ||
115 | { | ||
116 | pr_err("module %s: .rel relocation unsupported\n", me->name); | ||
117 | return -ENOEXEC; | ||
118 | } | ||
119 | |||
120 | #ifdef __tilegx__ | 101 | #ifdef __tilegx__ |
121 | /* | 102 | /* |
122 | * Validate that the high 16 bits of "value" is just the sign-extension of | 103 | * Validate that the high 16 bits of "value" is just the sign-extension of |
@@ -249,15 +230,3 @@ int apply_relocate_add(Elf_Shdr *sechdrs, | |||
249 | } | 230 | } |
250 | return 0; | 231 | return 0; |
251 | } | 232 | } |
252 | |||
253 | int module_finalize(const Elf_Ehdr *hdr, | ||
254 | const Elf_Shdr *sechdrs, | ||
255 | struct module *me) | ||
256 | { | ||
257 | /* FIXME: perhaps remove the "writable" bit from the TLB? */ | ||
258 | return 0; | ||
259 | } | ||
260 | |||
261 | void module_arch_cleanup(struct module *mod) | ||
262 | { | ||
263 | } | ||
diff --git a/arch/unicore32/kernel/module.c b/arch/unicore32/kernel/module.c index 3e5a38d71a1e..8fbe8577f5e6 100644 --- a/arch/unicore32/kernel/module.c +++ b/arch/unicore32/kernel/module.c | |||
@@ -37,19 +37,6 @@ void *module_alloc(unsigned long size) | |||
37 | return __vmalloc_area(area, GFP_KERNEL, PAGE_KERNEL_EXEC); | 37 | return __vmalloc_area(area, GFP_KERNEL, PAGE_KERNEL_EXEC); |
38 | } | 38 | } |
39 | 39 | ||
40 | void module_free(struct module *module, void *region) | ||
41 | { | ||
42 | vfree(region); | ||
43 | } | ||
44 | |||
45 | int module_frob_arch_sections(Elf_Ehdr *hdr, | ||
46 | Elf_Shdr *sechdrs, | ||
47 | char *secstrings, | ||
48 | struct module *mod) | ||
49 | { | ||
50 | return 0; | ||
51 | } | ||
52 | |||
53 | int | 40 | int |
54 | apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, | 41 | apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, |
55 | unsigned int relindex, struct module *module) | 42 | unsigned int relindex, struct module *module) |
@@ -128,25 +115,3 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, | |||
128 | } | 115 | } |
129 | return 0; | 116 | return 0; |
130 | } | 117 | } |
131 | |||
132 | int | ||
133 | apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab, | ||
134 | unsigned int symindex, unsigned int relsec, | ||
135 | struct module *module) | ||
136 | { | ||
137 | printk(KERN_ERR "module %s: ADD RELOCATION unsupported\n", | ||
138 | module->name); | ||
139 | return -ENOEXEC; | ||
140 | } | ||
141 | |||
142 | int | ||
143 | module_finalize(const Elf32_Ehdr *hdr, const Elf_Shdr *sechdrs, | ||
144 | struct module *module) | ||
145 | { | ||
146 | return 0; | ||
147 | } | ||
148 | |||
149 | void | ||
150 | module_arch_cleanup(struct module *mod) | ||
151 | { | ||
152 | } | ||
diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c index 52f256f2cc81..925179f871de 100644 --- a/arch/x86/kernel/module.c +++ b/arch/x86/kernel/module.c | |||
@@ -45,21 +45,6 @@ void *module_alloc(unsigned long size) | |||
45 | -1, __builtin_return_address(0)); | 45 | -1, __builtin_return_address(0)); |
46 | } | 46 | } |
47 | 47 | ||
48 | /* Free memory returned from module_alloc */ | ||
49 | void module_free(struct module *mod, void *module_region) | ||
50 | { | ||
51 | vfree(module_region); | ||
52 | } | ||
53 | |||
54 | /* We don't need anything special. */ | ||
55 | int module_frob_arch_sections(Elf_Ehdr *hdr, | ||
56 | Elf_Shdr *sechdrs, | ||
57 | char *secstrings, | ||
58 | struct module *mod) | ||
59 | { | ||
60 | return 0; | ||
61 | } | ||
62 | |||
63 | #ifdef CONFIG_X86_32 | 48 | #ifdef CONFIG_X86_32 |
64 | int apply_relocate(Elf32_Shdr *sechdrs, | 49 | int apply_relocate(Elf32_Shdr *sechdrs, |
65 | const char *strtab, | 50 | const char *strtab, |
@@ -100,17 +85,6 @@ int apply_relocate(Elf32_Shdr *sechdrs, | |||
100 | } | 85 | } |
101 | return 0; | 86 | return 0; |
102 | } | 87 | } |
103 | |||
104 | int apply_relocate_add(Elf32_Shdr *sechdrs, | ||
105 | const char *strtab, | ||
106 | unsigned int symindex, | ||
107 | unsigned int relsec, | ||
108 | struct module *me) | ||
109 | { | ||
110 | printk(KERN_ERR "module %s: ADD RELOCATION unsupported\n", | ||
111 | me->name); | ||
112 | return -ENOEXEC; | ||
113 | } | ||
114 | #else /*X86_64*/ | 88 | #else /*X86_64*/ |
115 | int apply_relocate_add(Elf64_Shdr *sechdrs, | 89 | int apply_relocate_add(Elf64_Shdr *sechdrs, |
116 | const char *strtab, | 90 | const char *strtab, |
@@ -181,17 +155,6 @@ overflow: | |||
181 | me->name); | 155 | me->name); |
182 | return -ENOEXEC; | 156 | return -ENOEXEC; |
183 | } | 157 | } |
184 | |||
185 | int apply_relocate(Elf_Shdr *sechdrs, | ||
186 | const char *strtab, | ||
187 | unsigned int symindex, | ||
188 | unsigned int relsec, | ||
189 | struct module *me) | ||
190 | { | ||
191 | printk(KERN_ERR "non add relocation not supported\n"); | ||
192 | return -ENOSYS; | ||
193 | } | ||
194 | |||
195 | #endif | 158 | #endif |
196 | 159 | ||
197 | int module_finalize(const Elf_Ehdr *hdr, | 160 | int module_finalize(const Elf_Ehdr *hdr, |
diff --git a/arch/xtensa/kernel/module.c b/arch/xtensa/kernel/module.c index c1accea8cb56..451dda928c93 100644 --- a/arch/xtensa/kernel/module.c +++ b/arch/xtensa/kernel/module.c | |||
@@ -24,26 +24,6 @@ | |||
24 | 24 | ||
25 | #undef DEBUG_RELOCATE | 25 | #undef DEBUG_RELOCATE |
26 | 26 | ||
27 | void *module_alloc(unsigned long size) | ||
28 | { | ||
29 | if (size == 0) | ||
30 | return NULL; | ||
31 | return vmalloc_exec(size); | ||
32 | } | ||
33 | |||
34 | void module_free(struct module *mod, void *module_region) | ||
35 | { | ||
36 | vfree(module_region); | ||
37 | } | ||
38 | |||
39 | int module_frob_arch_sections(Elf32_Ehdr *hdr, | ||
40 | Elf32_Shdr *sechdrs, | ||
41 | char *secstrings, | ||
42 | struct module *mod) | ||
43 | { | ||
44 | return 0; | ||
45 | } | ||
46 | |||
47 | static int | 27 | static int |
48 | decode_calln_opcode (unsigned char *location) | 28 | decode_calln_opcode (unsigned char *location) |
49 | { | 29 | { |
@@ -66,18 +46,6 @@ decode_l32r_opcode (unsigned char *location) | |||
66 | #endif | 46 | #endif |
67 | } | 47 | } |
68 | 48 | ||
69 | int apply_relocate(Elf32_Shdr *sechdrs, | ||
70 | const char *strtab, | ||
71 | unsigned int symindex, | ||
72 | unsigned int relsec, | ||
73 | struct module *mod) | ||
74 | { | ||
75 | printk(KERN_ERR "module %s: REL RELOCATION unsupported\n", | ||
76 | mod->name); | ||
77 | return -ENOEXEC; | ||
78 | |||
79 | } | ||
80 | |||
81 | int apply_relocate_add(Elf32_Shdr *sechdrs, | 49 | int apply_relocate_add(Elf32_Shdr *sechdrs, |
82 | const char *strtab, | 50 | const char *strtab, |
83 | unsigned int symindex, | 51 | unsigned int symindex, |
@@ -222,14 +190,3 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, | |||
222 | } | 190 | } |
223 | return 0; | 191 | return 0; |
224 | } | 192 | } |
225 | |||
226 | int module_finalize(const Elf_Ehdr *hdr, | ||
227 | const Elf_Shdr *sechdrs, | ||
228 | struct module *mod) | ||
229 | { | ||
230 | return 0; | ||
231 | } | ||
232 | |||
233 | void module_arch_cleanup(struct module *mod) | ||
234 | { | ||
235 | } | ||