diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-02-25 23:56:38 +0000 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-02-26 00:10:47 +0000 |
commit | 98e12b5a6e05413420a7e3b3eca7fbfc2ff41b6d (patch) | |
tree | 0d8e2d7f6dab7baf96da5a32678bd85095778853 /arch/arm/boot/compressed/vmlinux.lds.in | |
parent | baac35c4155a8aa826c70acee6553368ca5243a2 (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.in | 3 |
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 a5924b9b88b..cbed030b55c 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 = .; |