• Nicolas Pitre's avatar
    ARM: 6746/1: remove the 4x expansion presumption while decompressing the kernel · d239b1dc
    Nicolas Pitre authored
    We currently presume a 4x expansion to guess the decompressed kernel size
    in order to determine if the decompressed kernel is in conflict with
    the location where zImage is loaded.  This guess may cause many issues
    by overestimating the final kernel image size:
    
    - This may force a needless relocation if the location of zImage was
      fine, wasting some precious microseconds of boot time.
    
    - The relocation may be located way too far, possibly overwriting the
      initrd image in RAM.
    
    - If the kernel image includes a large already-compressed initramfs image
      then the problem is even more exacerbated.
    
    And if by some strange means the 4x guess is too low then we may overwrite
    ourselves with the decompressed image.
    
    So let's use the exact decompressed kernel image size instead.  For that
    we need to rely on the stat command, but this is hardly a new build
    dependency as the kernel already depends on many external commands
    to be built provided by the coreutils package where stat is found.
    Signed-off-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    d239b1dc
vmlinux.lds.in 1.34 KB