diff options
-rw-r--r-- | kexec/arch/ppc64/kexec-elf-rel-ppc64.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kexec/arch/ppc64/kexec-elf-rel-ppc64.c b/kexec/arch/ppc64/kexec-elf-rel-ppc64.c index a0d1750..c5fd561 100644 --- a/kexec/arch/ppc64/kexec-elf-rel-ppc64.c +++ b/kexec/arch/ppc64/kexec-elf-rel-ppc64.c @@ -97,7 +97,7 @@ void machine_apply_elf_rel(struct mem_ehdr *ehdr, unsigned long r_type, break; case R_PPC64_ADDR16_HA: - *(uint16_t *)location = ((value>>16) & 0xffff); + *(uint16_t *)location = (((value+0x8000)>>16) & 0xffff); break; case R_PPC64_ADDR16_HIGHEST: |