lkml.org 
[lkml]   [2023]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 09/10] MIPS: traps: Enhance memblock ebase allocation process
    Date
    We try to allocate from KSEG0 accessible space first, and
    then if we really can't allocate any memory from KSEG0 and
    we are sure that we support ebase in higher segment, give
    it another go without restriction.

    This can maximize the possibility of having ebase in KSEG0.

    Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
    ---
    arch/mips/kernel/traps.c | 7 ++++++-
    1 file changed, 6 insertions(+), 1 deletion(-)

    diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
    index b6e94654f621..68f1dd54cde1 100644
    --- a/arch/mips/kernel/traps.c
    +++ b/arch/mips/kernel/traps.c
    @@ -2399,7 +2399,12 @@ void __init trap_init(void)
    memblock_reserve(ebase_pa, vec_size);
    } else {
    vec_size = max(vec_size, PAGE_SIZE);
    - ebase_pa = memblock_phys_alloc(vec_size, 1 << fls(vec_size));
    + ebase_pa = memblock_phys_alloc_range(vec_size, 1 << fls(vec_size),
    + 0x0, KSEGX_SIZE - 1);
    +
    + if (!ebase_pa && (IS_ENABLED(CONFIG_EVA) || cpu_has_ebase_wg))
    + ebase_pa = memblock_phys_alloc(vec_size, 1 << fls(vec_size));
    +
    if (!ebase_pa)
    panic("%s: Failed to allocate %lu bytes align=0x%x\n",
    __func__, vec_size, 1 << fls(vec_size));
    --
    2.34.1
    \
     
     \ /
      Last update: 2023-10-28 00:13    [W:7.682 / U:0.384 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site