[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20230723-sprig-audacious-4fff0306735d@spud>
Date: Sun, 23 Jul 2023 11:27:05 +0100
From: Conor Dooley <conor@...nel.org>
To: Conor Dooley <conor.dooley@...rochip.com>
Cc: Torsten Duwe <duwe@....de>, Palmer Dabbelt <palmer@...belt.com>,
Li Zhengyu <lizhengyu3@...wei.com>,
Paul Walmsley <paul.walmsley@...ive.com>,
Albert Ou <aou@...s.berkeley.edu>,
Li Huafei <lihuafei1@...wei.com>,
Liao Chang <liaochang1@...wei.com>,
linux-riscv@...ts.infradead.org, linux-kernel@...r.kernel.org,
liubao918@...wei.com
Subject: Re: [PATCH] riscv: relocate R_RISCV_CALL_PLT in kexec_file
Hey Torsten,
On Tue, Mar 21, 2023 at 03:35:38PM +0000, Conor Dooley wrote:
> On Tue, Mar 21, 2023 at 04:03:49PM +0100, Torsten Duwe wrote:
> > On Mon, 13 Mar 2023 11:13:17 +0800
> > Li Zhengyu <lizhengyu3@...wei.com> wrote:
> >
> > > On Fri, 10 Mar 2023 19:27:03 +0100, Torsten Duwe <duwe@....de> wrote:
> > > > Depending on the toolchain (here: gcc-12, binutils-2.40) the
> > > > relocation entries for function calls are no longer R_RISCV_CALL, but
> > > > R_RISCV_CALL_PLT. When trying kexec_load_file on such kernels, it will
> > > > fail with
> > > >
> > > > kexec_image: Unknown rela relocation: 19
> > > > kexec_image: Error loading purgatory ret=-8
> > > >
> > > > The binary code at the call site remains the same, so tell
> > > > arch_kexec_apply_relocations_add() to handle _PLT alike.
> > >
> > > R_RISCV_CALL has already been deprecated, and replaced by R_RISCV_CALL_PLT.
> > >
> > > See Enum 18-19 in Table 3. Relocation types from
> > > https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc
> > > .
> > >
> > > It was deprecated in ("Deprecated R_RISCV_CALL, prefer
> > > R_RISCV_CALL_PLT")
> > > https://github.com/riscv-non-isa/riscv-elf-psabi-doc/commit/a0dced85018d7a0ec17023c9389cbd70b1dbc1b0
> > >
> > > >
> > > > fixes: 838b3e28488f702 ("Load purgatory in kexec_file")
> > > > Signed-off-by: Torsten Duwe <duwe@...e.de>
> > > > Cc: stable@...r.kernel.org
> > > >
> > > > ---
> > > > --- a/arch/riscv/kernel/elf_kexec.c
> > > > +++ b/arch/riscv/kernel/elf_kexec.c
> > > > @@ -425,6 +425,7 @@ int arch_kexec_apply_relocations_add(struct purgatory_info *pi,
> > > > * sym, instead of searching the whole relsec.
> > > > */
> > > > case R_RISCV_PCREL_HI20:
> > > > + case R_RISCV_CALL_PLT:
> > > > case R_RISCV_CALL:
> > > > *(u64 *)loc = CLEAN_IMM(UITYPE, *(u64 *)loc) |
> > > > ENCODE_UJTYPE_IMM(val - addr);
> > > >
> > > > .
> > >
> > > Palmer, please apply these references to the commit message.
> > >
> > > Reviewed-by: Li Zhengyu <lizhengyu3@...wei.com>
> > >
> >
> > Ping?
>
> It's not been all that longer than a week & you're in patchwork so you
> won't be forgotten,
Turns out it did get forgotten, or more accurately, marked as "Changes
Requested".
> but I noticed a complaint when I went looking on
> patchwork about your fixes tag:
>
> Commit: f28b81e30b4b ("riscv: relocate R_RISCV_CALL_PLT in kexec_file")
> Fixes tag: fixes: 838b3e28488f702 ("Load purgatory in kexec_file")
> Has these problem(s):
> - Subject does not match target commit subject
> Just use
> git log -1 --format='Fixes: %h ("%s")'
>
> The fixes tag should be:
> Fixes: 838b3e28488f ("RISC-V: Load purgatory in kexec_file")
>
> Note the capital F & the missed RISC-V: prefix, checkpatch should have
> complained about this.
> Checkpatch also complains that your suse email in the Signoff doesn't
> match the lst.de email that you used to send the patch (IOW you're
> missing a From: header that send-email would add).
>
> Could you fix those things up please & I suppose you can take the
> opportunity to make the changes that Li Zhengyu suggested to the commit
> message itself at the same time.
Would you mind resending this with the Fixes & Signoff corrections?
Thanks,
Conor.
Download attachment "signature.asc" of type "application/pgp-signature" (229 bytes)
Powered by blists - more mailing lists