[PATCH] Fix kexec reboot on ARM

Peter Chubb peter.chubb at nicta.com.au
Wed Dec 14 05:36:32 EST 2011


>>>>> "Russell" == Russell King <- ARM Linux <linux at arm.linux.org.uk>> writes:

Russell> On Wed, Dec 14, 2011 at 08:08:02AM +0000, Russell King - ARM
Russell> Linux wrote:
>> On Wed, Dec 14, 2011 at 03:02:10PM +1100, Peter Chubb wrote:
>> > 
>> > When kexec() runs, it eventually sets up a 1-to-1 memory map,
>> then > invokes cpu_reset(). When it invokes cpu_reset (which turns
>> > off the MMU), it does so at its virtual address.  Across the code
>> that > disables the MMU, virtual and physical addresses have to be
>> the same, > otherwise after disabling the MMU, the PC is invalid.
>> > 
>> > The simplest fix is to invoke cpu_reset() at its one-to-one
>> mapped > address.
>> > 
>> > I've tested on KZM (arm v6) and Beagleboard (omap)
>> 
>> NAK.
>> 
>> Three reasons:
>> 
>> 1. You've not signed-off the patch (please read
>> Documentation/SubmittingPatches) 2. pre-ARMv6 do not expect this,
>> and it will break where PHYS_OFFSET >= PAGE_OFFSET 3. Have you seen
>> what's already queued for the next merge window?

Russell> And 4. You didn't cc the linux-arm-kernel mailing list with
Russell> your patch.

Sure, last time I tried to cc linux-arm it bounced.  And I wasn't
expecting this to be accepted yet (hence no signed-off-by: line), just
wanted comment.

If there's already a patch queued to fix this then fine.


--
Dr Peter Chubb  http://www.gelato.unsw.edu.au  peterc AT gelato.unsw.edu.au
http://www.ertos.nicta.com.au           ERTOS within National ICT Australia
--
Dr Peter Chubb  http://www.gelato.unsw.edu.au  peterc AT gelato.unsw.edu.au
http://www.ertos.nicta.com.au           ERTOS within National ICT Australia



More information about the kexec mailing list