• Serge Semin's avatar
    mips: Make sure dt memory regions are valid · 93fa5b28
    Serge Semin authored
    There are situations when memory regions coming from dts may be
    too big for the platform physical address space. This especially
    concerns XPA-capable systems. Bootloader may determine more than 4GB
    memory available and pass it to the kernel over dts memory node, while
    kernel is built without XPA/64BIT support. In this case the region
    may either simply be truncated by add_memory_region() method
    or by u64->phys_addr_t type casting. But in worst case the method
    can even drop the memory region if it exceeds PHYS_ADDR_MAX size.
    So lets make sure the retrieved from dts memory regions are valid,
    and if some of them aren't, just manually truncate them with a warning
    printed out.
    Signed-off-by: default avatarSerge Semin <fancer.lancer@gmail.com>
    Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: James Hogan <jhogan@kernel.org>
    Cc: Mike Rapoport <rppt@linux.ibm.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Thomas Bogendoerfer <tbogendoerfer@suse.de>
    Cc: Huacai Chen <chenhc@lemote.com>
    Cc: Stefan Agner <stefan@agner.ch>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Serge Semin <Sergey.Semin@t-platforms.ru>
    Cc: linux-mips@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    93fa5b28
prom.c 2.17 KB