• Eugeniy Paltsev's avatar
    ARC: adjust memblock_reserve of kernel memory · 377f080a
    Eugeniy Paltsev authored
    commit a3010a0465383300f909f62b8a83f83ffa7b2517 upstream.
    
    In setup_arch_memory we reserve the memory area wherein the kernel
    is located. Current implementation may reserve more memory than
    it actually required in case of CONFIG_LINUX_LINK_BASE is not
    equal to CONFIG_LINUX_RAM_BASE. This happens because we calculate
    start of the reserved region relatively to the CONFIG_LINUX_RAM_BASE
    and end of the region relatively to the CONFIG_LINUX_RAM_BASE.
    
    For example in case of HSDK board we wasted 256MiB of physical memory:
    ------------------->8------------------------------
    Memory: 770416K/1048576K available (5496K kernel code,
        240K rwdata, 1064K rodata, 2200K init, 275K bss,
        278160K reserved, 0K cma-reserved)
    ------------------->8------------------------------
    
    Fix that.
    
    Fixes: 9ed68785 ("ARC: mm: Decouple RAM base address from kernel link addr")
    Cc: stable@vger.kernel.org	#4.14+
    Signed-off-by: default avatarEugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
    Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    377f080a
init.c 6.12 KB