]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/i915: Kill private_default_ctx off
authorOscar Mateo <oscar.mateo@intel.com>
Thu, 22 May 2014 13:13:38 +0000 (14:13 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 22 May 2014 21:44:44 +0000 (23:44 +0200)
It's barely alive now anyway, so give it the "coup de grĂ¢ce".

Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_debugfs.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem_context.c

index 4f0f697363a29f12351d357ef5d8bff2e984885c..333dd12d62f43c193a2d589b27c6a749bdc93e6d 100644 (file)
@@ -1858,6 +1858,10 @@ static int per_file_ctx(int id, void *ptr, void *data)
        struct seq_file *m = data;
        struct i915_hw_ppgtt *ppgtt = ctx_to_ppgtt(ctx);
 
+       if (i915_gem_context_is_default(ctx))
+               seq_puts(m, "  default context:\n");
+       else
+               seq_printf(m, "  context %d:\n", ctx->id);
        ppgtt->debug_dump(ppgtt, m);
 
        return 0;
@@ -1917,12 +1921,9 @@ static void gen6_ppgtt_info(struct seq_file *m, struct drm_device *dev)
 
        list_for_each_entry_reverse(file, &dev->filelist, lhead) {
                struct drm_i915_file_private *file_priv = file->driver_priv;
-               struct i915_hw_ppgtt *pvt_ppgtt;
 
-               pvt_ppgtt = ctx_to_ppgtt(file_priv->private_default_ctx);
                seq_printf(m, "proc: %s\n",
                           get_pid_task(file->pid, PIDTYPE_PID)->comm);
-               seq_puts(m, "  default context:\n");
                idr_for_each(&file_priv->context_idr, per_file_ctx, m);
        }
        seq_printf(m, "ECOCHK: 0x%08x\n", I915_READ(GAM_ECOCHK));
index f422ed37c7fe322d01d93735ea8d86ac6d72379a..8f68678f361fb4797a9e3a7772917a66a1e0a413 100644 (file)
@@ -1780,7 +1780,6 @@ struct drm_i915_file_private {
        } mm;
        struct idr context_idr;
 
-       struct intel_context *private_default_ctx;
        atomic_t rps_wait_boost;
        struct  intel_engine_cs *bsd_ring;
 };
index 2100f6e8a703cc620a3a7ecb4753e59ce79e8ec6..3ffe308d58937b767e6337ed6a9cf7aaa65d4b5b 100644 (file)
@@ -497,10 +497,6 @@ static int context_idr_cleanup(int id, void *p, void *data)
 {
        struct intel_context *ctx = p;
 
-       /* Ignore the default context because close will handle it */
-       if (i915_gem_context_is_default(ctx))
-               return 0;
-
        i915_gem_context_unreference(ctx);
        return 0;
 }
@@ -508,17 +504,17 @@ static int context_idr_cleanup(int id, void *p, void *data)
 int i915_gem_context_open(struct drm_device *dev, struct drm_file *file)
 {
        struct drm_i915_file_private *file_priv = file->driver_priv;
+       struct intel_context *ctx;
 
        idr_init(&file_priv->context_idr);
 
        mutex_lock(&dev->struct_mutex);
-       file_priv->private_default_ctx =
-               i915_gem_create_context(dev, file_priv, USES_FULL_PPGTT(dev));
+       ctx = i915_gem_create_context(dev, file_priv, USES_FULL_PPGTT(dev));
        mutex_unlock(&dev->struct_mutex);
 
-       if (IS_ERR(file_priv->private_default_ctx)) {
+       if (IS_ERR(ctx)) {
                idr_destroy(&file_priv->context_idr);
-               return PTR_ERR(file_priv->private_default_ctx);
+               return PTR_ERR(ctx);
        }
 
        return 0;
@@ -530,8 +526,6 @@ void i915_gem_context_close(struct drm_device *dev, struct drm_file *file)
 
        idr_for_each(&file_priv->context_idr, context_idr_cleanup, NULL);
        idr_destroy(&file_priv->context_idr);
-
-       i915_gem_context_unreference(file_priv->private_default_ctx);
 }
 
 struct intel_context *