Re: [PATCH v4 11/18] drm/panthor: Don't pre-allocate VMAs or page tables when preparing a full VM unmap
From: Adrian Larumbe
Date: Thu Sep 10 2026 - 23:42:16 EST
Reviewed-by: Adrián Larumbe <adrian.larumbe@xxxxxxxxxxxxx>
On 26.08.2026 16:56, Boris Brezillon wrote:
> In the cleanup path, we unmap the full VA range to make sure things are
> clean before the VM is released. I'd rather not fail on memory
> allocation in that path, so let's make sure
> panthor_vm_pgtable_prepare_unmap_op_ctx() doesn't allocate VMAs or
> page tables when the unmap range matches the VM virtual address range.
>
> Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx>
> ---
> drivers/gpu/drm/panthor/panthor_mmu.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/panthor/panthor_mmu.c b/drivers/gpu/drm/panthor/panthor_mmu.c
> index 58f0bd2ac7a2..11a9bbe87986 100644
> --- a/drivers/gpu/drm/panthor/panthor_mmu.c
> +++ b/drivers/gpu/drm/panthor/panthor_mmu.c
> @@ -1477,6 +1477,10 @@ static int panthor_as_prepare_unmap_op_ctx(struct panthor_as_op_ctx *op_ctx,
> op_ctx->va.addr = va;
> op_ctx->flags = DRM_PANTHOR_VM_BIND_OP_TYPE_UNMAP;
>
> + /* Unmap on the whole VM range don't need new VMAs or page tables. */
> + if (va == as->base.mm_start && size == as->base.mm_range)
> + return 0;
> +
> /* Pre-allocate L3 page tables to account for the split-2M-block
> * situation on unmap.
> */
>
> --
> 2.55.0
Adrian Larumbe