ARM: zImage: the page table memory must be considered before relocation
authorNicolas Pitre <nicolas.pitre@linaro.org>
Fri, 22 Apr 2011 02:52:06 +0000 (22:52 -0400)
committerNicolas Pitre <nico@fluxnic.net>
Sat, 7 May 2011 04:07:58 +0000 (00:07 -0400)
For correctness, the initial page table located right before the
decompressed kernel should be considered when determining if relocation
is required.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Tony Lindgren <tony@atomide.com>
arch/arm/boot/compressed/head.S

index 53dd5da..d1fd1cf 100644 (file)
@@ -216,9 +216,10 @@ restart:   adr     r0, LC0
  *   r9  = size of decompressed image
  *   r10 = end of this image, including  bss/stack/malloc space if non XIP
  * We basically want:
  *   r9  = size of decompressed image
  *   r10 = end of this image, including  bss/stack/malloc space if non XIP
  * We basically want:
- *   r4 >= r10 -> OK
+ *   r4 - 16k page directory >= r10 -> OK
  *   r4 + image length <= current position (pc) -> OK
  */
  *   r4 + image length <= current position (pc) -> OK
  */
+               add     r10, r10, #16384
                cmp     r4, r10
                bhs     wont_overwrite
                add     r10, r4, r9
                cmp     r4, r10
                bhs     wont_overwrite
                add     r10, r4, r9