drm/xe/bo: explicitly reject zero sized BO
authorMatthew Auld <matthew.auld@intel.com>
Thu, 22 Dec 2022 10:36:47 +0000 (10:36 +0000)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 19 Dec 2023 23:29:43 +0000 (18:29 -0500)
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 <matthew.auld@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_bo.c

index 3e5393e00b43a300f23dd3f052232834844055ab..09b8db6d7ba363b8c11028dd032522bbcb8463f5 100644 (file)
@@ -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;