[PATCH 1/1] s390: handle R_390_PLT32DBL reloc entries in machine_apply_elf_rel()

Simon Horman horms at verge.net.au
Wed Dec 15 04:43:00 PST 2021


On Mon, Dec 13, 2021 at 11:44:30AM +0100, Philipp Rudo wrote:
> Hi Alexander,
> 
> @Alexander: Thanks for taking care of this.
> 
> On Wed,  8 Dec 2021 13:53:55 +0100
> Alexander Egorenkov <egorenar at linux.ibm.com> wrote:
> 
> > Starting with gcc 11.3, the C compiler will generate PLT-relative function
> > calls even if they are local and do not require it. Later on during linking,
> > the linker will replace all PLT-relative calls to local functions with
> > PC-relative ones. Unfortunately, the purgatory code of kexec/kdump is
> > not being linked as a regular executable or shared library would have been,
> > and therefore, all PLT-relative addresses remain in the generated purgatory
> > object code unresolved. This leads to the situation where the purgatory
> > code is being executed during kdump with all PLT-relative addresses
> > unresolved. And this results in endless loops within the purgatory code.
> 
> Tiny nit. The last two sentences describe the situation in the kernel.
> Luckily the kexec-tools do proper error checking and die with
> 
> 	"Unknown rela relocation: 0x14 0x73c0901c"
> 
> when they encounter an unknown relocation type.
> 
> Anyway, the code is correct
> 
> Reviewed-by: Philipp Rudo <prudo at redhat.com>

Thanks.

Alexander would you care to post a v2 with an updated patch description?



More information about the kexec mailing list