diff options
Diffstat (limited to 'arch/x86/kernel/module.c')
| -rw-r--r-- | arch/x86/kernel/module.c | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c index f58336af095c..b052e883dd8c 100644 --- a/arch/x86/kernel/module.c +++ b/arch/x86/kernel/module.c @@ -201,6 +201,12 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,  				goto overflow;  #endif  			break; +		case R_X86_64_PC64: +			if (*(u64 *)loc != 0) +				goto invalid_relocation; +			val -= (u64)loc; +			*(u64 *)loc = val; +			break;  		default:  			pr_err("%s: Unknown rela relocation: %llu\n",  			       me->name, ELF64_R_TYPE(rel[i].r_info)); |