summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kexec/arch/ppc64/kexec-elf-rel-ppc64.c2
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: