[ARM] 3205/1: Handle new EABI relocations when loading kernel modules.
Patch from Daniel Jacobowitz Handle new EABI relocations when loading kernel modules. This is necessary for CONFIG_AEABI kernels, and also for some broken (since fixed) old ABI toolchains. Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
		
					parent
					
						
							
								1ee9530a71
							
						
					
				
			
			
				commit
				
					
						c2e2611425
					
				
			
		
					 2 changed files with 4 additions and 0 deletions
				
			
		|  | @ -101,6 +101,8 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, | ||||||
| 			break; | 			break; | ||||||
| 
 | 
 | ||||||
| 		case R_ARM_PC24: | 		case R_ARM_PC24: | ||||||
|  | 		case R_ARM_CALL: | ||||||
|  | 		case R_ARM_JUMP24: | ||||||
| 			offset = (*(u32 *)loc & 0x00ffffff) << 2; | 			offset = (*(u32 *)loc & 0x00ffffff) << 2; | ||||||
| 			if (offset & 0x02000000) | 			if (offset & 0x02000000) | ||||||
| 				offset -= 0x04000000; | 				offset -= 0x04000000; | ||||||
|  |  | ||||||
|  | @ -22,6 +22,8 @@ typedef unsigned long elf_freg_t[3]; | ||||||
| #define R_ARM_NONE	0 | #define R_ARM_NONE	0 | ||||||
| #define R_ARM_PC24	1 | #define R_ARM_PC24	1 | ||||||
| #define R_ARM_ABS32	2 | #define R_ARM_ABS32	2 | ||||||
|  | #define R_ARM_CALL	28 | ||||||
|  | #define R_ARM_JUMP24	29 | ||||||
| 
 | 
 | ||||||
| #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) | #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) | ||||||
| typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Daniel Jacobowitz
				Daniel Jacobowitz