Merge branch 'master' into devel
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Sat, 28 Mar 2009 20:30:18 +0000 (20:30 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 28 Mar 2009 20:30:18 +0000 (20:30 +0000)
Conflicts:
arch/arm/include/asm/elf.h
arch/arm/kernel/module.c

1  2 
arch/arm/include/asm/elf.h
arch/arm/kernel/module.c
arch/arm/mm/mmu.c
drivers/scsi/arm/cumana_2.c

index def8eac6e89d42dbb55078e463d1dc8c07a6bf07,ce3b36e9df81afffb6be14412d59dcbfd49abc7d..d7da19bcf9287f325816dbda4d80083dbf0a7374
@@@ -50,7 -50,7 +50,8 @@@ typedef struct user_fp elf_fpregset_t
  #define R_ARM_ABS32   2
  #define R_ARM_CALL    28
  #define R_ARM_JUMP24  29
+ #define R_ARM_V4BX    40
 +#define R_ARM_PREL31  42
  
  /*
   * These are used to set parameters in the core dumps.
index 13dbd5bf5cc2e25be8441fb05f0f9150a19400df,9f509fd00fda40fab3888c6f6865e843052aedfe..d1731e39b496cc436a79fbb0631f181e166580e7
@@@ -155,11 -132,15 +155,20 @@@ apply_relocate(Elf32_Shdr *sechdrs, con
                        *(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;
 +                      break;
 +
                default:
                        printk(KERN_ERR "%s: unknown relocation: %u\n",
                               module->name, ELF32_R_TYPE(rel->r_info));
Simple merge
Simple merge