]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/panthor: check bo offset alignment in vm bind
authorChia-I Wu <olvaffe@gmail.com>
Thu, 28 Aug 2025 20:01:16 +0000 (13:01 -0700)
committerSteven Price <steven.price@arm.com>
Wed, 3 Sep 2025 11:29:54 +0000 (12:29 +0100)
Fail early from panthor_vm_bind_prepare_op_ctx instead of late from
ops->map_pages.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20250828200116.3532255-1-olvaffe@gmail.com
drivers/gpu/drm/panthor/panthor_mmu.c

index bad720f23eb7014da571ffc657ef7ce564421ed0..6dec4354e3789d17c5a87fc8de3bc86764b804bc 100644 (file)
@@ -1222,7 +1222,7 @@ static int panthor_vm_prepare_map_op_ctx(struct panthor_vm_op_ctx *op_ctx,
            (flags & DRM_PANTHOR_VM_BIND_OP_TYPE_MASK) != DRM_PANTHOR_VM_BIND_OP_TYPE_MAP)
                return -EINVAL;
 
-       /* Make sure the VA and size are aligned and in-bounds. */
+       /* Make sure the VA and size are in-bounds. */
        if (size > bo->base.base.size || offset > bo->base.base.size - size)
                return -EINVAL;
 
@@ -2447,7 +2447,7 @@ panthor_vm_bind_prepare_op_ctx(struct drm_file *file,
        int ret;
 
        /* Aligned on page size. */
-       if (!IS_ALIGNED(op->va | op->size, vm_pgsz))
+       if (!IS_ALIGNED(op->va | op->size | op->bo_offset, vm_pgsz))
                return -EINVAL;
 
        switch (op->flags & DRM_PANTHOR_VM_BIND_OP_TYPE_MASK) {