diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c index 79a5bd0b21dd..e82aabb3c5e2 100644 --- a/arch/arm64/mm/mmu.c +++ b/arch/arm64/mm/mmu.c @@ -218,6 +218,7 @@ static void alloc_init_pud(struct mm_struct *mm, pgd_t *pgd, * For 4K granule only, attempt to put down a 1GB block */ if (use_1G_block(addr, next, phys) && + !force_pages && !dma_overlap(phys, phys + next - addr) && !IS_ENABLED(CONFIG_FORCE_PAGES)) { pud_t old_pud = *pud;