Subject: [PATCH v2] ARM: kexec: Use the right ISA for relocate_new_kernel

From: [email-masked] (Taras Kondratiuk)
Date: Tue, 12 Nov 2013 21:29:15 +0200

Hi Dave

Yes. I've tested it on Pandaboard and results are quite weird.
ARM->ARM, Thumb->Thumb and Thumb->ARM kernel transition works fine
for both kexec and kdump ways. But ARM->Thumb works for only kdump
via kernel panic. In case of "kexec -e" the second Thumb kernel
doesn't come up.

I don't have JTAG now. I will check this tomorrow morning.

On 8 November 2013 20:46, Dave Martin <[email-masked]> wrote:
> On Fri, Nov 08, 2013 at 01:34:27PM +0000, Will Deacon wrote:
>> On Fri, Nov 08, 2013 at 12:24:04PM +0000, Dave Martin wrote:
>> > Copying a function with memcpy() and then trying to execute the
>> > result isn't trivially portable to Thumb.
>> >
>> > This patch modifies the kexec soft restart code to copy its
>> > assembler trampoline relocate_new_kernel() using fncpy() instead,
>> > so that relocate_new_kernel can be in the same ISA as the rest of
>> > the kernel without problems.
>> >
>> > Signed-off-by: Dave Martin <[email-masked]>
>> > ---
>> > Changes since v1:
>> >
>> >   * Move ENDPROC() after relocate_new_kernel's literals, to be
>> >     consistent the location of relocate_new_kernel_end and with the way
>> >     GCC sets ELF symbol sizes for functions.  This is just a tidyup,
>> >     with no functional impact.
>>
>> Cheers Dave:
>>
>>   Acked-by: Will Deacon <[email-masked]>
>
> Thanks
>
>
> Are you still in a position to test this, Taras?
>
> Cheers
> ---Dave

-- 
Regards,
Taras Kondratiuk