[PATCH 05/11] halp

Chris Wilson chris at chris-wilson.co.uk
Thu Nov 14 22:54:00 UTC 2019


---
 drivers/gpu/drm/i915/gem/i915_gem_pages.c          | 2 ++
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 9 +++++++++
 drivers/gpu/drm/i915/i915_gem.c                    | 3 ---
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pages.c b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
index f402c2c415c2..b8f99275fd78 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_pages.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
@@ -207,6 +207,8 @@ int __i915_gem_object_put_pages(struct drm_i915_gem_object *obj)
 		goto unlock;
 	}
 
+	i915_gem_object_release_mmap_offset(obj);
+
 	/*
 	 * ->put_pages might need to allocate memory for the bit17 swizzle
 	 * array, hence protect them from being reaped by removing them from gtt
diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
index 63bc8864a38e..1bedc9d115c5 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
@@ -944,6 +944,15 @@ static int igt_mmap_revoke(void *arg, enum i915_mmap_type type)
 	}
 	GEM_BUG_ON(atomic_read(&obj->bind_count));
 
+	if (type != I915_MMAP_TYPE_GTT) {
+		__i915_gem_object_put_pages(obj);
+		if (i915_gem_object_has_pages(obj)) {
+			pr_err("Failed to put-pages object!\n");
+			err = -EINVAL;
+			goto out_unmap;
+		}
+	}
+
 	err = check_absent(addr, obj->base.size);
 	if (err)
 		goto out_unmap;
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index a1da9b6d031b..78019fe058a1 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -145,9 +145,6 @@ int i915_gem_object_unbind(struct drm_i915_gem_object *obj,
 	list_splice(&still_in_list, &obj->vma.list);
 	spin_unlock(&obj->vma.lock);
 
-	if (flags & I915_GEM_OBJECT_UNBIND_ACTIVE)
-		i915_gem_object_release_mmap_offset(obj);
-
 	return ret;
 }
 
-- 
2.24.0



More information about the Intel-gfx-trybot mailing list