]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/kernel/module.c
Merge branch 'master' into devel
[linux-2.6-omap-h63xx.git] / arch / arm / kernel / module.c
index 13dbd5bf5cc2e25be8441fb05f0f9150a19400df..d1731e39b496cc436a79fbb0631f181e166580e7 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;