lkml.org 
[lkml]   [2022]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v23 2/6] arm64: Use insert_resource() to simplify code
    Date
    insert_resource() traverses the subtree layer by layer from the root node
    until a proper location is found. Compared with request_resource(), the
    parent node does not need to be determined in advance.

    In addition, move the insertion of node 'crashk_res' into function
    reserve_crashkernel() to make the associated code close together.

    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Acked-by: John Donnelly <john.p.donnelly@oracle.com>
    Acked-by: Baoquan He <bhe@redhat.com>
    ---
    arch/arm64/kernel/setup.c | 17 +++--------------
    arch/arm64/mm/init.c | 1 +
    2 files changed, 4 insertions(+), 14 deletions(-)

    diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
    index 3505789cf4bd92a..fea3223704b6339 100644
    --- a/arch/arm64/kernel/setup.c
    +++ b/arch/arm64/kernel/setup.c
    @@ -225,6 +225,8 @@ static void __init request_standard_resources(void)
    kernel_code.end = __pa_symbol(__init_begin - 1);
    kernel_data.start = __pa_symbol(_sdata);
    kernel_data.end = __pa_symbol(_end - 1);
    + insert_resource(&iomem_resource, &kernel_code);
    + insert_resource(&iomem_resource, &kernel_data);

    num_standard_resources = memblock.memory.cnt;
    res_size = num_standard_resources * sizeof(*standard_resources);
    @@ -246,20 +248,7 @@ static void __init request_standard_resources(void)
    res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1;
    }

    - request_resource(&iomem_resource, res);
    -
    - if (kernel_code.start >= res->start &&
    - kernel_code.end <= res->end)
    - request_resource(res, &kernel_code);
    - if (kernel_data.start >= res->start &&
    - kernel_data.end <= res->end)
    - request_resource(res, &kernel_data);
    -#ifdef CONFIG_KEXEC_CORE
    - /* Userspace will find "Crash kernel" region in /proc/iomem. */
    - if (crashk_res.end && crashk_res.start >= res->start &&
    - crashk_res.end <= res->end)
    - request_resource(res, &crashk_res);
    -#endif
    + insert_resource(&iomem_resource, res);
    }
    }

    diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
    index 1e7b1550e2fcebb..51863f1448c6989 100644
    --- a/arch/arm64/mm/init.c
    +++ b/arch/arm64/mm/init.c
    @@ -137,6 +137,7 @@ static void __init reserve_crashkernel(void)
    kmemleak_ignore_phys(crash_base);
    crashk_res.start = crash_base;
    crashk_res.end = crash_base + crash_size - 1;
    + insert_resource(&iomem_resource, &crashk_res);
    }

    /*
    --
    2.25.1
    \
     
     \ /
      Last update: 2022-05-05 11:21    [W:4.453 / U:0.252 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site