lkml.org 
[lkml]   [2020]   [Dec]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 220/453] MIPS: Dont round up kernel sections size for memblock_add()
    Date
    From: Alexander Sverdlin <alexander.sverdlin@nokia.com>

    [ Upstream commit d121f125af22a16f0f679293756d28a9691fa46d ]

    Linux doesn't own the memory immediately after the kernel image. On Octeon
    bootloader places a shared structure right close after the kernel _end,
    refer to "struct cvmx_bootinfo *octeon_bootinfo" in cavium-octeon/setup.c.

    If check_kernel_sections_mem() rounds the PFNs up, first memblock_alloc()
    inside early_init_dt_alloc_memory_arch() <= device_tree_init() returns
    memory block overlapping with the above octeon_bootinfo structure, which
    is being overwritten afterwards.

    Fixes: a94e4f24ec83 ("MIPS: init: Drop boot_mem_map")
    Signed-off-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/mips/kernel/setup.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
    index b8884de89c81e..82e44b31aad59 100644
    --- a/arch/mips/kernel/setup.c
    +++ b/arch/mips/kernel/setup.c
    @@ -529,8 +529,8 @@ static void __init request_crashkernel(struct resource *res)

    static void __init check_kernel_sections_mem(void)
    {
    - phys_addr_t start = PFN_PHYS(PFN_DOWN(__pa_symbol(&_text)));
    - phys_addr_t size = PFN_PHYS(PFN_UP(__pa_symbol(&_end))) - start;
    + phys_addr_t start = __pa_symbol(&_text);
    + phys_addr_t size = __pa_symbol(&_end) - start;

    if (!memblock_is_region_memory(start, size)) {
    pr_info("Kernel sections are not in the memory maps\n");
    --
    2.27.0


    \
     
     \ /
      Last update: 2020-12-28 16:41    [W:4.037 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site