1 diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h
2 index a58378c..ce3b36e 100644
3 --- a/arch/arm/include/asm/elf.h
4 +++ b/arch/arm/include/asm/elf.h
5 @@ -50,6 +50,7 @@ typedef struct user_fp elf_fpregset_t;
8 #define R_ARM_JUMP24 29
12 * These are used to set parameters in the core dumps.
13 diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
14 index dab48f2..9f509fd 100644
15 --- a/arch/arm/kernel/module.c
16 +++ b/arch/arm/kernel/module.c
17 @@ -132,6 +132,15 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,
18 *(u32 *)loc |= offset & 0x00ffffff;
22 + /* Preserve Rm and the condition code. Alter
23 + * other bits to re-code instruction as
26 + *(u32 *)loc &= 0xf000000f;
27 + *(u32 *)loc |= 0x01a0f000;
31 printk(KERN_ERR "%s: unknown relocation: %u\n",
32 module->name, ELF32_R_TYPE(rel->r_info));