[PATCH 7/7] [TEST] fix lockdep possible circular locking issue
Robert Beckett
bob.beckett at collabora.com
Tue May 10 19:58:24 UTC 2022
---
drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 27 ++--------------------
drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 5 ++++
2 files changed, 7 insertions(+), 25 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index a0be086299c5..cc08ce0a2d1a 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -570,31 +570,8 @@ struct drm_i915_gem_object *
i915_gem_object_create_stolen(struct drm_i915_private *i915,
resource_size_t size)
{
- struct drm_i915_gem_object *obj;
- int ret;
-
- obj = i915_gem_object_create_region(i915->mm.stolen_region, size, 0,
- I915_BO_ALLOC_CONTIGUOUS);
- if (IS_ERR(obj))
- return obj;
-
- ret = i915_gem_object_lock(obj, NULL);
- if (ret)
- goto err_lock;
-
- ret = i915_gem_object_pin_pages(obj);
- if (ret)
- goto err_pin;
-
- i915_gem_object_unlock(obj);
-
- return obj;
-
-err_pin:
- i915_gem_object_unlock(obj);
-err_lock:
- i915_gem_object_put(obj);
- return ERR_PTR(ret);
+ return i915_gem_object_create_region(i915->mm.stolen_region, size, 0,
+ I915_BO_ALLOC_CONTIGUOUS);
}
static struct intel_memory_region *alloc_stolen_region(void)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
index 3a883b6e0828..d8af77347e6d 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
@@ -1264,6 +1264,11 @@ int __i915_gem_ttm_object_init(struct intel_memory_region *mem,
i915_gem_object_init_memory_region(obj, mem);
i915_ttm_adjust_domains_after_move(obj);
i915_ttm_adjust_gem_after_move(obj);
+ if (is_stolen) {
+ ret = i915_gem_object_pin_pages(obj);
+ if (ret)
+ return ret;
+ }
i915_gem_object_unlock(obj);
return 0;
--
2.25.1
More information about the Intel-gfx-trybot
mailing list