]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/gpu/drm/i915/i915_gem_context.c
drm/i915: Hold rcu_read_lock when iterating over the radixtree (vma idr)
[mirror_ubuntu-bionic-kernel.git] / drivers / gpu / drm / i915 / i915_gem_context.c
index 58a2a44f88bd0067059fb8695a087c04968ecb3d..8afd2ce59b8d5050161bdd13611fcec4602a5321 100644 (file)
@@ -104,6 +104,7 @@ static void lut_close(struct i915_gem_context *ctx)
                kmem_cache_free(ctx->i915->luts, lut);
        }
 
+       rcu_read_lock();
        radix_tree_for_each_slot(slot, &ctx->handles_vma, &iter, 0) {
                struct i915_vma *vma = rcu_dereference_raw(*slot);
                struct drm_i915_gem_object *obj = vma->obj;
@@ -115,6 +116,7 @@ static void lut_close(struct i915_gem_context *ctx)
 
                __i915_gem_object_release_unless_active(obj);
        }
+       rcu_read_unlock();
 }
 
 static void i915_gem_context_free(struct i915_gem_context *ctx)