lkml.org 
[lkml]   [2021]   [Dec]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v18 13/17] arm64: kdump: introduce some macros for crash kernel reservation
    Date
    From: Chen Zhou <chenzhou10@huawei.com>

    Introduce macro CRASH_ALIGN for alignment, macro CRASH_ADDR_LOW_MAX
    for upper bound of low crash memory, macro CRASH_ADDR_HIGH_MAX for
    upper bound of high crash memory, use macros instead.

    Besides, keep consistent with x86, use CRASH_ALIGN as the lower bound
    of crash kernel reservation.

    Signed-off-by: Chen Zhou <chenzhou10@huawei.com>
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Tested-by: John Donnelly <John.p.donnelly@oracle.com>
    Tested-by: Dave Kleikamp <dave.kleikamp@oracle.com>
    ---
    arch/arm64/include/asm/kexec.h | 6 ++++++
    arch/arm64/mm/init.c | 4 ++--
    2 files changed, 8 insertions(+), 2 deletions(-)

    diff --git a/arch/arm64/include/asm/kexec.h b/arch/arm64/include/asm/kexec.h
    index 9839bfc163d7147..1b9edc69f0244ca 100644
    --- a/arch/arm64/include/asm/kexec.h
    +++ b/arch/arm64/include/asm/kexec.h
    @@ -25,6 +25,12 @@

    #define KEXEC_ARCH KEXEC_ARCH_AARCH64

    +/* 2M alignment for crash kernel regions */
    +#define CRASH_ALIGN SZ_2M
    +
    +#define CRASH_ADDR_LOW_MAX arm64_dma_phys_limit
    +#define CRASH_ADDR_HIGH_MAX MEMBLOCK_ALLOC_ACCESSIBLE
    +
    #ifndef __ASSEMBLY__

    /**
    diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
    index a8834434af99ae0..be4595dc7459115 100644
    --- a/arch/arm64/mm/init.c
    +++ b/arch/arm64/mm/init.c
    @@ -75,7 +75,7 @@ phys_addr_t arm64_dma_phys_limit __ro_after_init;
    static void __init reserve_crashkernel(void)
    {
    unsigned long long crash_base, crash_size;
    - unsigned long long crash_max = arm64_dma_phys_limit;
    + unsigned long long crash_max = CRASH_ADDR_LOW_MAX;
    int ret;

    ret = parse_crashkernel(boot_command_line, memblock_phys_mem_size(),
    @@ -91,7 +91,7 @@ static void __init reserve_crashkernel(void)
    crash_max = crash_base + crash_size;

    /* Current arm64 boot protocol requires 2MB alignment */
    - crash_base = memblock_phys_alloc_range(crash_size, SZ_2M,
    + crash_base = memblock_phys_alloc_range(crash_size, CRASH_ALIGN,
    crash_base, crash_max);
    if (!crash_base) {
    pr_warn("cannot allocate crashkernel (size:0x%llx)\n",
    --
    2.25.1
    \
     
     \ /
      Last update: 2021-12-22 14:13    [W:4.180 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site