Re: [PATCH] ARM: kexec: Fix panic after TLB are invalidated

From: Russell King - ARM Linux admin
Date: Fri Feb 05 2021 - 04:49:51 EST


On Fri, Feb 05, 2021 at 12:40:54AM +0000, Giancarlo Ferrari wrote:
> Russell,
>
> On Fri, Feb 05, 2021 at 12:18:33AM +0000, Russell King - ARM Linux admin wrote:
> > On Thu, Feb 04, 2021 at 11:48:42PM +0000, Giancarlo Ferrari wrote:
> > > Can I ask about having it integrated ?
> >
> > Thanks for testing. Are you willing for me to add:
> >
> > Tested-by: Giancarlo Ferrari <giancarlo.ferrari89@xxxxxxxxx>
> >
> > to the commit log?
> >
>
> Sure.
>
> I have a question regarding the patch. I saw that the structure start at
> the end of the relocation code:
>
> data = reboot_code_buffer + relocate_new_kernel_size;
>
> which means it overlap with the global symbol relocate_new_kernel_size.
> I think is minor comment as the variable is only used in the fncpy()
> then thrown away.

The same is true of the rest of the kernel image if that's how you'd
like to look at it.

relocate_new_kernel_size is just there to tell the C code the size of
the function, nothing more nothing less. It isn't there to be copied.
The copied code doesn't use it.

> Something like:
>
> data = reboot_code_buffer + relocate_new_kernel_size + sizeof(long);

No. That will place the structure after the size variable, which we
don't want, and...

> and accordingly in the instruction (arch/arm/kernel/relocate_kernel.S):
>
> adr r7, relocate_new_kernel_end

... we will then need to follow this with:
add r7, r7, #4

or replace it with:
adr r7, relocate_new_kernel_end + 4

so that r7 points at "data".

--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!