[PATCH] UBUNTU: [arm] Fix kexec on ARM by properly calling the relocation function

Michael Casadevall michael.casadevall at canonical.com
Mon Jan 26 16:40:44 UTC 2009

Hash: SHA1

Russell King - ARM Linux wrote:
> On Thu, Jan 22, 2009 at 10:33:39AM +0200, Amit Kucheria wrote:
>> Forwarding a patch to fix kexec on ARM. Comments sought.
> This patch can't work - with how it is, you'll be booting a kernel with
> the CPU MMU enabled.  Kernels must be booted with the CPU MMU disabled
> as per the 'booting.txt' documentation, which can be found in the kernel
> source and on my website.

I was unaware of this document when I created the patch, I'll make sure to
refer to it when I take another stab at resolving this issue.

> In fact, this patch looks entirely bogus.  The reboot code
> (arch/arm/kernel/relocate_kernel.S) does not take any arguments - in
> fact, the first two instructions load into r0,r1 which, if arguments
> were passed, would wipe out the first two arguments.
> So no, this patch looks bogus.

I tested the patch in QEMU as I have no way to debug against my current
hardware; it seems QEMU caused a false positive with respect to testing this
patch; both the baseline kernel, and the Ubuntu git tree failed to
successfully use kexec without this patch. Once applied, I was able to
successfully use kexec to load a secondary kernel with both kernel trees.

As far as I can tell, debugging against QEMU, the baseline kernel never
manages to enter the relocation stub, so I'm not sure whats going on there at
all, and my patch only fixes it via a fluke, so I hope you accept my apology
for the bad patch.
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


More information about the kernel-team mailing list