Hi.

I haven't rebooted my laptop with kexec for quite some time, but when I tried 
to this morning I got the error you will
see in $SUBJECT.  The error occurs with both kexec-tools-2.0.17 or -2.0.16 run 
on either 4.18.0-rc6+ (built from a git
pull this morning) or 4.14.57 kernels.

I searched for "R_X86_64_PLT32" and found that there was a change to the kernel 
that may be related -
b21ebf2fb4cde1618915a97cc773e287ff49173e x86: Treat R_X86_64_PLT32 as 
R_X86_64_PC32. So I replicated the change that
patch made to arch/x86/kernel/machine_kexec_64.c in 
kexec/arch/x86_64/kexec-elf-rel-x86_64.c and kexec now reboots into
the new kernel.

I don't know enough about relocations and the like to know whether my 'fix' is 
correct and the best way to go about it,
but I've included it below for your consideration.

Signed-off-by: Chris Clayton <chris2...@googlemail.com>

--- kexec-tools-2.0.17/kexec/arch/x86_64/kexec-elf-rel-x86_64.c.orig    
2018-07-25 08:48:24.152054030 +0100
+++ kexec-tools-2.0.17/kexec/arch/x86_64/kexec-elf-rel-x86_64.c 2018-07-25 
08:49:16.860055330 +0100
@@ -79,6 +79,7 @@ void machine_apply_elf_rel(struct mem_eh
                        goto overflow;
                break;
        case R_X86_64_PC32:
+       case R_X86_64_PLT32:
                *(uint32_t *)location = value - address;
                break;
        default:

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to