Skip to content

Commit 4c1cbcb

Browse files
gerald-schaeferVasily Gorbik
authored andcommitted
s390/kaslr: add support for R_390_JMP_SLOT relocation type
With certain kernel configurations, the R_390_JMP_SLOT relocation type might be generated, which is not expected by the KASLR relocation code, and the kernel stops with the message "Unknown relocation type". This was found with a zfcpdump kernel config, where CONFIG_MODULES=n and CONFIG_VFIO=n. In that case, symbol_get() is used on undefined __weak symbols in virt/kvm/vfio.c, which results in the generation of R_390_JMP_SLOT relocation types. Fix this by handling R_390_JMP_SLOT similar to R_390_GLOB_DAT. Fixes: 805bc0b ("s390/kernel: build a relocatable kernel") Cc: <[email protected]> # v5.2+ Signed-off-by: Gerald Schaefer <[email protected]> Reviewed-by: Philipp Rudo <[email protected]> Signed-off-by: Vasily Gorbik <[email protected]>
1 parent ac8372f commit 4c1cbcb

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

arch/s390/kernel/machine_kexec_reloc.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ int arch_kexec_do_relocs(int r_type, void *loc, unsigned long val,
2828
break;
2929
case R_390_64: /* Direct 64 bit. */
3030
case R_390_GLOB_DAT:
31+
case R_390_JMP_SLOT:
3132
*(u64 *)loc = val;
3233
break;
3334
case R_390_PC16: /* PC relative 16 bit. */

0 commit comments

Comments
 (0)