From d79bdcdf06a3b421ac386f3513365f0bf2a5649a Mon Sep 17 00:00:00 2001 From: Matthew Auld Date: Thu, 22 Dec 2022 10:36:47 +0000 Subject: [PATCH] drm/xe/bo: explicitly reject zero sized BO In the depths of ttm, when allocating the vma node this should result in -ENOSPC it seems. However we should probably rather reject as part of our own ioctl sanity checking, and then treat as programmer error in the lower levels. Signed-off-by: Matthew Auld Cc: Lucas De Marchi Reviewed-by: Maarten Lankhorst Signed-off-by: Rodrigo Vivi --- drivers/gpu/drm/xe/xe_bo.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c index 3e5393e00b43..09b8db6d7ba3 100644 --- a/drivers/gpu/drm/xe/xe_bo.c +++ b/drivers/gpu/drm/xe/xe_bo.c @@ -971,6 +971,9 @@ struct xe_bo *__xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo, /* Only kernel objects should set GT */ XE_BUG_ON(gt && type != ttm_bo_type_kernel); + if (XE_WARN_ON(!size)) + return ERR_PTR(-EINVAL); + if (!bo) { bo = xe_bo_alloc(); if (IS_ERR(bo)) @@ -1524,6 +1527,9 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data, if (XE_IOCTL_ERR(xe, args->handle)) return -EINVAL; + if (XE_IOCTL_ERR(xe, !args->size)) + return -EINVAL; + if (XE_IOCTL_ERR(xe, args->size > SIZE_MAX)) return -EINVAL;