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

Heiko Carstens hca at linux.ibm.com
Wed Dec 15 09:48:17 PST 2021


On Wed, Dec 15, 2021 at 01:43:00PM +0100, Simon Horman wrote:
> 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?

Given that Alexander is currently not available, I will resend his
patch with an updated commit message.



More information about the kexec mailing list