summaryrefslogtreecommitdiff
path: root/arch/arm/boot/compressed/vmlinux.lds.in
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2010-02-25 23:56:38 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-02-26 00:10:47 +0000
commit98e12b5a6e05413420a7e3b3eca7fbfc2ff41b6d (patch)
tree0d8e2d7f6dab7baf96da5a32678bd85095778853 /arch/arm/boot/compressed/vmlinux.lds.in
parentbaac35c4155a8aa826c70acee6553368ca5243a2 (diff)
ARM: Fix decompressor's kernel size estimation for ROM=y
Commit 2552fc2 changed the way the decompressor decides if it is safe to decompress the kernel directly to its final location. Unfortunately, it took the top of the compressed data as being the stack pointer, which it is for ROM=n cases. However, for ROM=y, the stack pointer is not relevant, and results in the wrong answer. Fix this by explicitly storing the end of the biggybacked data in the decompressor, and use that to calculate the compressed image size. CC: <stable@kernel.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/boot/compressed/vmlinux.lds.in')
-rw-r--r--arch/arm/boot/compressed/vmlinux.lds.in3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/boot/compressed/vmlinux.lds.in b/arch/arm/boot/compressed/vmlinux.lds.in
index a5924b9b88bd..cbed030b55cf 100644
--- a/arch/arm/boot/compressed/vmlinux.lds.in
+++ b/arch/arm/boot/compressed/vmlinux.lds.in
@@ -36,6 +36,9 @@ SECTIONS
_etext = .;
+ /* Assume size of decompressed image is 4x the compressed image */
+ _image_size = (_etext - _text) * 4;
+
_got_start = .;
.got : { *(.got) }
_got_end = .;