create-diff-object: support R_X86_64_NONE in kpatch_replace_sections_syms()

Add support for R_X86_64_NONE.  With an upstream kernel, it's quite
rare, only used for a few jump labels.  With older kernels it was used
for fentry hooks.  Either way, it should be treated like a PC-relative
relocation.

Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
This commit is contained in:
Josh Poimboeuf 2022-05-11 14:36:41 -07:00
parent 79f45d1b0a
commit 3f8e1062cc
1 changed files with 2 additions and 1 deletions

View File

@ -1580,7 +1580,8 @@ static void kpatch_replace_sections_syms(struct kpatch_elf *kelf)
rela->type == R_X86_64_32S) rela->type == R_X86_64_32S)
add_off = 0; add_off = 0;
else if (rela->type == R_X86_64_PC32 || else if (rela->type == R_X86_64_PC32 ||
rela->type == R_X86_64_PLT32) { rela->type == R_X86_64_PLT32 ||
rela->type == R_X86_64_NONE) {
struct insn insn; struct insn insn;
rela_insn(relasec, rela, &insn); rela_insn(relasec, rela, &insn);
add_off = (unsigned int)((long)insn.next_byte - add_off = (unsigned int)((long)insn.next_byte -