diff options
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r-- | arch/arm/kernel/module.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c index 6b4605893f1e..1dae0468677a 100644 --- a/arch/arm/kernel/module.c +++ b/arch/arm/kernel/module.c | |||
@@ -71,17 +71,19 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, | |||
71 | Elf_Shdr *s, *sechdrs_end = sechdrs + hdr->e_shnum; | 71 | Elf_Shdr *s, *sechdrs_end = sechdrs + hdr->e_shnum; |
72 | 72 | ||
73 | for (s = sechdrs; s < sechdrs_end; s++) { | 73 | for (s = sechdrs; s < sechdrs_end; s++) { |
74 | if (strcmp(".ARM.exidx.init.text", secstrings + s->sh_name) == 0) | 74 | char const *secname = secstrings + s->sh_name; |
75 | |||
76 | if (strcmp(".ARM.exidx.init.text", secname) == 0) | ||
75 | mod->arch.unw_sec_init = s; | 77 | mod->arch.unw_sec_init = s; |
76 | else if (strcmp(".ARM.exidx.devinit.text", secstrings + s->sh_name) == 0) | 78 | else if (strcmp(".ARM.exidx.devinit.text", secname) == 0) |
77 | mod->arch.unw_sec_devinit = s; | 79 | mod->arch.unw_sec_devinit = s; |
78 | else if (strcmp(".ARM.exidx", secstrings + s->sh_name) == 0) | 80 | else if (strcmp(".ARM.exidx", secname) == 0) |
79 | mod->arch.unw_sec_core = s; | 81 | mod->arch.unw_sec_core = s; |
80 | else if (strcmp(".init.text", secstrings + s->sh_name) == 0) | 82 | else if (strcmp(".init.text", secname) == 0) |
81 | mod->arch.sec_init_text = s; | 83 | mod->arch.sec_init_text = s; |
82 | else if (strcmp(".devinit.text", secstrings + s->sh_name) == 0) | 84 | else if (strcmp(".devinit.text", secname) == 0) |
83 | mod->arch.sec_devinit_text = s; | 85 | mod->arch.sec_devinit_text = s; |
84 | else if (strcmp(".text", secstrings + s->sh_name) == 0) | 86 | else if (strcmp(".text", secname) == 0) |
85 | mod->arch.sec_core_text = s; | 87 | mod->arch.sec_core_text = s; |
86 | } | 88 | } |
87 | #endif | 89 | #endif |