[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