diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2020-12-09 19:04:48 +0100 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2020-12-09 19:04:48 +0100 |
commit | ba4259a6f87a4d7b5039673569db06b6d8b74cf3 (patch) | |
tree | ca880ae0a2f555ee49b572c97703ad6a9da9fcff /arch/arm64/mm/mmu.c | |
parent | Merge branch 'for-next/uaccess' into for-next/core (diff) | |
parent | arm64: vmlinux.lds.S: Drop redundant *.init.rodata.* (diff) | |
download | linux-ba4259a6f87a4d7b5039673569db06b6d8b74cf3.tar.xz linux-ba4259a6f87a4d7b5039673569db06b6d8b74cf3.zip |
Merge branch 'for-next/misc' into for-next/core
* for-next/misc:
: Miscellaneous patches
arm64: vmlinux.lds.S: Drop redundant *.init.rodata.*
kasan: arm64: set TCR_EL1.TBID1 when enabled
arm64: mte: optimize asynchronous tag check fault flag check
arm64/mm: add fallback option to allocate virtually contiguous memory
arm64/smp: Drop the macro S(x,s)
arm64: consistently use reserved_pg_dir
arm64: kprobes: Remove redundant kprobe_step_ctx
# Conflicts:
# arch/arm64/kernel/vmlinux.lds.S
Diffstat (limited to 'arch/arm64/mm/mmu.c')
-rw-r--r-- | arch/arm64/mm/mmu.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c index fe0721a44376..dd214157a026 100644 --- a/arch/arm64/mm/mmu.c +++ b/arch/arm64/mm/mmu.c @@ -1127,8 +1127,11 @@ int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node, void *p = NULL; p = vmemmap_alloc_block_buf(PMD_SIZE, node, altmap); - if (!p) - return -ENOMEM; + if (!p) { + if (vmemmap_populate_basepages(addr, next, node, altmap)) + return -ENOMEM; + continue; + } pmd_set_huge(pmdp, __pa(p), __pgprot(PROT_SECT_NORMAL)); } else |