]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Nov 2025 20:37:12 +0000 (15:37 -0500)
[ Upstream commit 5afa9d2a9bb1410f816e0123846047288b16e4b9 ]

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
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/panthor/panthor_mmu.c

index 0402f5f734a1ba4e321a809a29465c3381eff610..de6ec324c8efcadc9f8dc7e2d4b8be684febd374 100644 (file)
@@ -1198,7 +1198,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;
 
@@ -2415,7 +2415,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) {