ARM: zImage: make sure appended DTB doesn't get overwritten by kernel .bss
authorNicolas Pitre <nicolas.pitre@linaro.org>
Sun, 12 Jun 2011 05:07:33 +0000 (01:07 -0400)
committerNicolas Pitre <nico@fluxnic.net>
Wed, 14 Sep 2011 17:51:57 +0000 (13:51 -0400)
commit5ffb04f6690d71fab241b3562ebf52b893ac4ff1
tree69897c130b7f3ff06d54d35eb3c92a8baea57119
parente2a6a3aafa9862c4a4b59f2a59b8f923d64a680e
ARM: zImage: make sure appended DTB doesn't get overwritten by kernel .bss

The appended DTB gets relocated with the decompressor code to get out
of the way of the decompressed kernel.  However the kernel's .bss section
may be larger than the relocated code and data, and then the DTB gets
overwritten.  Let's make sure the relocation takes care of moving zImage
far enough so no such conflict with .bss occurs.

Thanks to Tony Lindgren <tony@atomide.com> for figuring out this issue.

While at it, let's clean up the code a bit so that the wont_overwrite
symbol is used while determining if a conflict exists, making the above
change more precise as well as eliminating some ARM/THUMB alternates.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Acked-by: Tony Lindgren <tony@atomide.com>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Tested-by: Dave Martin <dave.martin@linaro.org>
Tested-by: Thomas Abraham <thomas.abraham@linaro.org>
arch/arm/boot/compressed/Makefile
arch/arm/boot/compressed/head.S