[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