drm/i915/stolen: consider I915_BO_ALLOC_GPU_ONLY
authorMatthew Auld <matthew.auld@intel.com>
Tue, 15 Mar 2022 18:14:21 +0000 (18:14 +0000)
committerMatthew Auld <matthew.auld@intel.com>
Wed, 16 Mar 2022 17:50:32 +0000 (17:50 +0000)
Keep the behaviour consistent with normal lmem, where we assume CPU
access if by default required.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Nirmoy Das <nirmoy.das@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220315181425.576828-3-matthew.auld@intel.com
drivers/gpu/drm/i915/gem/i915_gem_stolen.c

index b860ec9..17f3589 100644 (file)
@@ -695,6 +695,14 @@ static int _i915_gem_object_stolen_init(struct intel_memory_region *mem,
        if (size == 0)
                return -EINVAL;
 
+       /*
+        * With discrete devices, where we lack a mappable aperture there is no
+        * possible way to ever access this memory on the CPU side.
+        */
+       if (mem->type == INTEL_MEMORY_STOLEN_LOCAL && !mem->io_size &&
+           !(flags & I915_BO_ALLOC_GPU_ONLY))
+               return -ENOSPC;
+
        stolen = kzalloc(sizeof(*stolen), GFP_KERNEL);
        if (!stolen)
                return -ENOMEM;