diff options
| -rw-r--r-- | arch/arm/kernel/module.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-pxa/pm.c | 9 | ||||
| -rw-r--r-- | include/asm-arm/elf.h | 2 |
3 files changed, 9 insertions, 4 deletions
diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c index 6055e1427ba3..055bf5d28894 100644 --- a/arch/arm/kernel/module.c +++ b/arch/arm/kernel/module.c | |||
| @@ -101,6 +101,8 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, | |||
| 101 | break; | 101 | break; |
| 102 | 102 | ||
| 103 | case R_ARM_PC24: | 103 | case R_ARM_PC24: |
| 104 | case R_ARM_CALL: | ||
| 105 | case R_ARM_JUMP24: | ||
| 104 | offset = (*(u32 *)loc & 0x00ffffff) << 2; | 106 | offset = (*(u32 *)loc & 0x00ffffff) << 2; |
| 105 | if (offset & 0x02000000) | 107 | if (offset & 0x02000000) |
| 106 | offset -= 0x04000000; | 108 | offset -= 0x04000000; |
diff --git a/arch/arm/mach-pxa/pm.c b/arch/arm/mach-pxa/pm.c index f74b9af112dc..852ea72d8c80 100644 --- a/arch/arm/mach-pxa/pm.c +++ b/arch/arm/mach-pxa/pm.c | |||
| @@ -155,19 +155,20 @@ int pxa_pm_enter(suspend_state_t state) | |||
| 155 | PSPR = 0; | 155 | PSPR = 0; |
| 156 | 156 | ||
| 157 | /* restore registers */ | 157 | /* restore registers */ |
| 158 | RESTORE_GPLEVEL(0); RESTORE_GPLEVEL(1); RESTORE_GPLEVEL(2); | ||
| 159 | RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2); | ||
| 158 | RESTORE(GAFR0_L); RESTORE(GAFR0_U); | 160 | RESTORE(GAFR0_L); RESTORE(GAFR0_U); |
| 159 | RESTORE(GAFR1_L); RESTORE(GAFR1_U); | 161 | RESTORE(GAFR1_L); RESTORE(GAFR1_U); |
| 160 | RESTORE(GAFR2_L); RESTORE(GAFR2_U); | 162 | RESTORE(GAFR2_L); RESTORE(GAFR2_U); |
| 161 | RESTORE_GPLEVEL(0); RESTORE_GPLEVEL(1); RESTORE_GPLEVEL(2); | ||
| 162 | RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2); | ||
| 163 | RESTORE(GRER0); RESTORE(GRER1); RESTORE(GRER2); | 163 | RESTORE(GRER0); RESTORE(GRER1); RESTORE(GRER2); |
| 164 | RESTORE(GFER0); RESTORE(GFER1); RESTORE(GFER2); | 164 | RESTORE(GFER0); RESTORE(GFER1); RESTORE(GFER2); |
| 165 | RESTORE(PGSR0); RESTORE(PGSR1); RESTORE(PGSR2); | 165 | RESTORE(PGSR0); RESTORE(PGSR1); RESTORE(PGSR2); |
| 166 | 166 | ||
| 167 | #ifdef CONFIG_PXA27x | 167 | #ifdef CONFIG_PXA27x |
| 168 | RESTORE(MDREFR); | 168 | RESTORE(MDREFR); |
| 169 | RESTORE(GAFR3_L); RESTORE(GAFR3_U); RESTORE_GPLEVEL(3); | 169 | RESTORE_GPLEVEL(3); RESTORE(GPDR3); |
| 170 | RESTORE(GPDR3); RESTORE(GRER3); RESTORE(GFER3); RESTORE(PGSR3); | 170 | RESTORE(GAFR3_L); RESTORE(GAFR3_U); |
| 171 | RESTORE(GRER3); RESTORE(GFER3); RESTORE(PGSR3); | ||
| 171 | RESTORE(PWER); RESTORE(PCFR); RESTORE(PRER); | 172 | RESTORE(PWER); RESTORE(PCFR); RESTORE(PRER); |
| 172 | RESTORE(PFER); RESTORE(PKWR); | 173 | RESTORE(PFER); RESTORE(PKWR); |
| 173 | #endif | 174 | #endif |
diff --git a/include/asm-arm/elf.h b/include/asm-arm/elf.h index 7da97a937548..2d44b42d1847 100644 --- a/include/asm-arm/elf.h +++ b/include/asm-arm/elf.h | |||
| @@ -22,6 +22,8 @@ typedef unsigned long elf_freg_t[3]; | |||
| 22 | #define R_ARM_NONE 0 | 22 | #define R_ARM_NONE 0 |
| 23 | #define R_ARM_PC24 1 | 23 | #define R_ARM_PC24 1 |
| 24 | #define R_ARM_ABS32 2 | 24 | #define R_ARM_ABS32 2 |
| 25 | #define R_ARM_CALL 28 | ||
| 26 | #define R_ARM_JUMP24 29 | ||
| 25 | 27 | ||
| 26 | #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) | 28 | #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) |
| 27 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | 29 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; |
