diff options
| -rw-r--r-- | arch/arm/include/asm/module.h | 2 | ||||
| -rw-r--r-- | arch/arm/kernel/module.c | 8 |
2 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/include/asm/module.h b/arch/arm/include/asm/module.h index 6dcff0f7f8d7..cbb0bc295d2b 100644 --- a/arch/arm/include/asm/module.h +++ b/arch/arm/include/asm/module.h | |||
| @@ -17,6 +17,8 @@ enum { | |||
| 17 | ARM_SEC_INIT, | 17 | ARM_SEC_INIT, |
| 18 | ARM_SEC_DEVINIT, | 18 | ARM_SEC_DEVINIT, |
| 19 | ARM_SEC_CORE, | 19 | ARM_SEC_CORE, |
| 20 | ARM_SEC_EXIT, | ||
| 21 | ARM_SEC_DEVEXIT, | ||
| 20 | ARM_SEC_MAX, | 22 | ARM_SEC_MAX, |
| 21 | }; | 23 | }; |
| 22 | struct mod_arch_specific { | 24 | struct mod_arch_specific { |
diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c index 0aa622e84b24..d9bd786ce23d 100644 --- a/arch/arm/kernel/module.c +++ b/arch/arm/kernel/module.c | |||
| @@ -80,12 +80,20 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, | |||
| 80 | maps[ARM_SEC_DEVINIT].unw_sec = s; | 80 | maps[ARM_SEC_DEVINIT].unw_sec = s; |
| 81 | else if (strcmp(".ARM.exidx", secname) == 0) | 81 | else if (strcmp(".ARM.exidx", secname) == 0) |
| 82 | maps[ARM_SEC_CORE].unw_sec = s; | 82 | maps[ARM_SEC_CORE].unw_sec = s; |
| 83 | else if (strcmp(".ARM.exidx.exit.text", secname) == 0) | ||
| 84 | maps[ARM_SEC_EXIT].unw_sec = s; | ||
| 85 | else if (strcmp(".ARM.exidx.devexit.text", secname) == 0) | ||
| 86 | maps[ARM_SEC_DEVEXIT].unw_sec = s; | ||
| 83 | else if (strcmp(".init.text", secname) == 0) | 87 | else if (strcmp(".init.text", secname) == 0) |
| 84 | maps[ARM_SEC_INIT].sec_text = s; | 88 | maps[ARM_SEC_INIT].sec_text = s; |
| 85 | else if (strcmp(".devinit.text", secname) == 0) | 89 | else if (strcmp(".devinit.text", secname) == 0) |
| 86 | maps[ARM_SEC_DEVINIT].sec_text = s; | 90 | maps[ARM_SEC_DEVINIT].sec_text = s; |
| 87 | else if (strcmp(".text", secname) == 0) | 91 | else if (strcmp(".text", secname) == 0) |
| 88 | maps[ARM_SEC_CORE].sec_text = s; | 92 | maps[ARM_SEC_CORE].sec_text = s; |
| 93 | else if (strcmp(".exit.text", secname) == 0) | ||
| 94 | maps[ARM_SEC_EXIT].sec_text = s; | ||
| 95 | else if (strcmp(".devexit.text", secname) == 0) | ||
| 96 | maps[ARM_SEC_DEVEXIT].sec_text = s; | ||
| 89 | } | 97 | } |
| 90 | #endif | 98 | #endif |
| 91 | return 0; | 99 | return 0; |
