Merge branch 'master' into devel
[pandora-kernel.git] / arch / arm / kernel / module.c
index 13dbd5b..d1731e3 100644 (file)
@@ -155,6 +155,15 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,
                        *(u32 *)loc |= offset & 0x00ffffff;
                        break;
 
+              case R_ARM_V4BX:
+                      /* Preserve Rm and the condition code. Alter
+                       * other bits to re-code instruction as
+                       * MOV PC,Rm.
+                       */
+                      *(u32 *)loc &= 0xf000000f;
+                      *(u32 *)loc |= 0x01a0f000;
+                      break;
+
                case R_ARM_PREL31:
                        offset = *(u32 *)loc + sym->st_value - loc;
                        *(u32 *)loc = offset & 0x7fffffff;