diff options
author | Nicolas Pitre <nicolas.pitre@linaro.org> | 2015-01-27 18:10:42 +0300 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2015-01-29 18:23:01 +0300 |
commit | c2607f74aad96d18316a6e709b40e0ffe9def148 (patch) | |
tree | 7ca8b21b5631d9fe31faa075544cfe1c26db5f3f /arch/arm/kernel/entry-v7m.S | |
parent | c2273a185354fe9420fb342b1ca09a6fed857fb3 (diff) | |
download | linux-c2607f74aad96d18316a6e709b40e0ffe9def148.tar.xz |
ARM: 8294/1: ATAG_DTB_COMPAT: remove the DT workspace's hardcoded 64KB size
There is currently a hardcoded limit of 64KB for the DTB to live in and
be extended with ATAG info. Some DTBs have outgrown that limit:
$ du -b arch/arm/boot/dts/omap3-n900.dtb
70212 arch/arm/boot/dts/omap3-n900.dtb
Furthermore, the actual size passed to atags_to_fdt() included the stack
size which is obviously wrong.
The initial DTB size is known, so use it to size the allocated workspace
with a 50% growth assumption and relocate the temporary stack above that.
This is also clamped to 32KB min / 1MB max for robustness against bad
DTB data.
Reported-by: Pali Rohár <pali.rohar@gmail.com>
Tested-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/entry-v7m.S')
0 files changed, 0 insertions, 0 deletions