aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/i915_gem_context.c2
-rw-r--r--drivers/gpu/drm/i915/i915_gem_render_state.c2
-rw-r--r--drivers/gpu/drm/i915/i915_guc_submission.c2
-rw-r--r--drivers/gpu/drm/i915/i915_vma.c35
-rw-r--r--drivers/gpu/drm/i915/i915_vma.h5
-rw-r--r--drivers/gpu/drm/i915/intel_engine_cs.c2
-rw-r--r--drivers/gpu/drm/i915/intel_lrc.c4
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c6
8 files changed, 13 insertions, 45 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
index 0a4728fdecdc..17f90c618208 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -269,7 +269,7 @@ __create_hw_context(struct drm_i915_private *dev_priv,
269 goto err_out; 269 goto err_out;
270 } 270 }
271 271
272 vma = i915_vma_create(obj, &dev_priv->ggtt.base, NULL); 272 vma = i915_vma_instance(obj, &dev_priv->ggtt.base, NULL);
273 if (IS_ERR(vma)) { 273 if (IS_ERR(vma)) {
274 i915_gem_object_put(obj); 274 i915_gem_object_put(obj);
275 ret = PTR_ERR(vma); 275 ret = PTR_ERR(vma);
diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.c b/drivers/gpu/drm/i915/i915_gem_render_state.c
index 63ae7e813335..b42c81b42487 100644
--- a/drivers/gpu/drm/i915/i915_gem_render_state.c
+++ b/drivers/gpu/drm/i915/i915_gem_render_state.c
@@ -200,7 +200,7 @@ int i915_gem_render_state_init(struct intel_engine_cs *engine)
200 goto err_free; 200 goto err_free;
201 } 201 }
202 202
203 so->vma = i915_vma_create(obj, &engine->i915->ggtt.base, NULL); 203 so->vma = i915_vma_instance(obj, &engine->i915->ggtt.base, NULL);
204 if (IS_ERR(so->vma)) { 204 if (IS_ERR(so->vma)) {
205 ret = PTR_ERR(so->vma); 205 ret = PTR_ERR(so->vma);
206 goto err_obj; 206 goto err_obj;
diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c
index c3277858cd8c..8ced9e26f075 100644
--- a/drivers/gpu/drm/i915/i915_guc_submission.c
+++ b/drivers/gpu/drm/i915/i915_guc_submission.c
@@ -566,7 +566,7 @@ struct i915_vma *intel_guc_allocate_vma(struct intel_guc *guc, u32 size)
566 if (IS_ERR(obj)) 566 if (IS_ERR(obj))
567 return ERR_CAST(obj); 567 return ERR_CAST(obj);
568 568
569 vma = i915_vma_create(obj, &dev_priv->ggtt.base, NULL); 569 vma = i915_vma_instance(obj, &dev_priv->ggtt.base, NULL);
570 if (IS_ERR(vma)) 570 if (IS_ERR(vma))
571 goto err; 571 goto err;
572 572
diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c
index b4d7b51266d2..cb415bfe22d7 100644
--- a/drivers/gpu/drm/i915/i915_vma.c
+++ b/drivers/gpu/drm/i915/i915_vma.c
@@ -69,16 +69,14 @@ i915_vma_retire(struct i915_gem_active *active,
69} 69}
70 70
71static struct i915_vma * 71static struct i915_vma *
72__i915_vma_create(struct drm_i915_gem_object *obj, 72vma_create(struct drm_i915_gem_object *obj,
73 struct i915_address_space *vm, 73 struct i915_address_space *vm,
74 const struct i915_ggtt_view *view) 74 const struct i915_ggtt_view *view)
75{ 75{
76 struct i915_vma *vma; 76 struct i915_vma *vma;
77 struct rb_node *rb, **p; 77 struct rb_node *rb, **p;
78 int i; 78 int i;
79 79
80 GEM_BUG_ON(vm->closed);
81
82 vma = kmem_cache_zalloc(to_i915(obj->base.dev)->vmas, GFP_KERNEL); 80 vma = kmem_cache_zalloc(to_i915(obj->base.dev)->vmas, GFP_KERNEL);
83 if (vma == NULL) 81 if (vma == NULL)
84 return ERR_PTR(-ENOMEM); 82 return ERR_PTR(-ENOMEM);
@@ -187,31 +185,6 @@ i915_vma_lookup(struct drm_i915_gem_object *obj,
187} 185}
188 186
189/** 187/**
190 * i915_vma_create - creates a VMA
191 * @obj: parent &struct drm_i915_gem_object to be mapped
192 * @vm: address space in which the mapping is located
193 * @view: additional mapping requirements
194 *
195 * i915_vma_create() allocates a new VMA of the @obj in the @vm with
196 * @view characteristics.
197 *
198 * Must be called with struct_mutex held.
199 *
200 * Returns the vma if found, or an error pointer.
201 */
202struct i915_vma *
203i915_vma_create(struct drm_i915_gem_object *obj,
204 struct i915_address_space *vm,
205 const struct i915_ggtt_view *view)
206{
207 lockdep_assert_held(&obj->base.dev->struct_mutex);
208 GEM_BUG_ON(view && !i915_is_ggtt(vm));
209 GEM_BUG_ON(i915_vma_lookup(obj, vm, view));
210
211 return __i915_vma_create(obj, vm, view);
212}
213
214/**
215 * i915_vma_instance - return the singleton instance of the VMA 188 * i915_vma_instance - return the singleton instance of the VMA
216 * @obj: parent &struct drm_i915_gem_object to be mapped 189 * @obj: parent &struct drm_i915_gem_object to be mapped
217 * @vm: address space in which the mapping is located 190 * @vm: address space in which the mapping is located
@@ -239,7 +212,7 @@ i915_vma_instance(struct drm_i915_gem_object *obj,
239 212
240 vma = i915_vma_lookup(obj, vm, view); 213 vma = i915_vma_lookup(obj, vm, view);
241 if (!vma) 214 if (!vma)
242 vma = i915_vma_create(obj, vm, view); 215 vma = vma_create(obj, vm, view);
243 216
244 GEM_BUG_ON(!IS_ERR(vma) && i915_vma_is_closed(vma)); 217 GEM_BUG_ON(!IS_ERR(vma) && i915_vma_is_closed(vma));
245 GEM_BUG_ON(!IS_ERR(vma) && i915_vma_compare(vma, vm, view)); 218 GEM_BUG_ON(!IS_ERR(vma) && i915_vma_compare(vma, vm, view));
diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h
index b3c81190b4a0..82a56193985c 100644
--- a/drivers/gpu/drm/i915/i915_vma.h
+++ b/drivers/gpu/drm/i915/i915_vma.h
@@ -112,11 +112,6 @@ struct i915_vma {
112}; 112};
113 113
114struct i915_vma * 114struct i915_vma *
115i915_vma_create(struct drm_i915_gem_object *obj,
116 struct i915_address_space *vm,
117 const struct i915_ggtt_view *view);
118
119struct i915_vma *
120i915_vma_lookup(struct drm_i915_gem_object *obj, 115i915_vma_lookup(struct drm_i915_gem_object *obj,
121 struct i915_address_space *vm, 116 struct i915_address_space *vm,
122 const struct i915_ggtt_view *view); 117 const struct i915_ggtt_view *view);
diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c
index 97bbbc3d6aa8..371acf109e34 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -264,7 +264,7 @@ int intel_engine_create_scratch(struct intel_engine_cs *engine, int size)
264 return PTR_ERR(obj); 264 return PTR_ERR(obj);
265 } 265 }
266 266
267 vma = i915_vma_create(obj, &engine->i915->ggtt.base, NULL); 267 vma = i915_vma_instance(obj, &engine->i915->ggtt.base, NULL);
268 if (IS_ERR(vma)) { 268 if (IS_ERR(vma)) {
269 ret = PTR_ERR(vma); 269 ret = PTR_ERR(vma);
270 goto err_unref; 270 goto err_unref;
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 8f8dcd9a9524..432ee495dec2 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -1225,7 +1225,7 @@ static int lrc_setup_wa_ctx_obj(struct intel_engine_cs *engine, u32 size)
1225 if (IS_ERR(obj)) 1225 if (IS_ERR(obj))
1226 return PTR_ERR(obj); 1226 return PTR_ERR(obj);
1227 1227
1228 vma = i915_vma_create(obj, &engine->i915->ggtt.base, NULL); 1228 vma = i915_vma_instance(obj, &engine->i915->ggtt.base, NULL);
1229 if (IS_ERR(vma)) { 1229 if (IS_ERR(vma)) {
1230 err = PTR_ERR(vma); 1230 err = PTR_ERR(vma);
1231 goto err; 1231 goto err;
@@ -2198,7 +2198,7 @@ static int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
2198 return PTR_ERR(ctx_obj); 2198 return PTR_ERR(ctx_obj);
2199 } 2199 }
2200 2200
2201 vma = i915_vma_create(ctx_obj, &ctx->i915->ggtt.base, NULL); 2201 vma = i915_vma_instance(ctx_obj, &ctx->i915->ggtt.base, NULL);
2202 if (IS_ERR(vma)) { 2202 if (IS_ERR(vma)) {
2203 ret = PTR_ERR(vma); 2203 ret = PTR_ERR(vma);
2204 goto error_deref_obj; 2204 goto error_deref_obj;
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 49fa8006c6a2..69035e4f9b3b 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1738,7 +1738,7 @@ static int init_status_page(struct intel_engine_cs *engine)
1738 if (ret) 1738 if (ret)
1739 goto err; 1739 goto err;
1740 1740
1741 vma = i915_vma_create(obj, &engine->i915->ggtt.base, NULL); 1741 vma = i915_vma_instance(obj, &engine->i915->ggtt.base, NULL);
1742 if (IS_ERR(vma)) { 1742 if (IS_ERR(vma)) {
1743 ret = PTR_ERR(vma); 1743 ret = PTR_ERR(vma);
1744 goto err; 1744 goto err;
@@ -1872,7 +1872,7 @@ intel_ring_create_vma(struct drm_i915_private *dev_priv, int size)
1872 /* mark ring buffers as read-only from GPU side by default */ 1872 /* mark ring buffers as read-only from GPU side by default */
1873 obj->gt_ro = 1; 1873 obj->gt_ro = 1;
1874 1874
1875 vma = i915_vma_create(obj, &dev_priv->ggtt.base, NULL); 1875 vma = i915_vma_instance(obj, &dev_priv->ggtt.base, NULL);
1876 if (IS_ERR(vma)) 1876 if (IS_ERR(vma))
1877 goto err; 1877 goto err;
1878 1878
@@ -2462,7 +2462,7 @@ static void intel_ring_init_semaphores(struct drm_i915_private *dev_priv,
2462 if (IS_ERR(obj)) 2462 if (IS_ERR(obj))
2463 goto err; 2463 goto err;
2464 2464
2465 vma = i915_vma_create(obj, &dev_priv->ggtt.base, NULL); 2465 vma = i915_vma_instance(obj, &dev_priv->ggtt.base, NULL);
2466 if (IS_ERR(vma)) 2466 if (IS_ERR(vma))
2467 goto err_obj; 2467 goto err_obj;
2468 2468