aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/module.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/module.c')
-rw-r--r--arch/x86/kernel/module.c6
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,
201 goto overflow; 201 goto overflow;
202#endif 202#endif
203 break; 203 break;
204 case R_X86_64_PC64:
205 if (*(u64 *)loc != 0)
206 goto invalid_relocation;
207 val -= (u64)loc;
208 *(u64 *)loc = val;
209 break;
204 default: 210 default:
205 pr_err("%s: Unknown rela relocation: %llu\n", 211 pr_err("%s: Unknown rela relocation: %llu\n",
206 me->name, ELF64_R_TYPE(rel[i].r_info)); 212 me->name, ELF64_R_TYPE(rel[i].r_info));