The queue only ever contains at most one item and has no special flags.
It is just a very simple wrapper around the system-wq - a complication
with no benefits.

Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_dma.c | 8 --------
 drivers/gpu/drm/i915/i915_drv.h | 1 -
 drivers/gpu/drm/i915/i915_irq.c | 6 +++---
 3 files changed, 3 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 46ac1da64a09..26dc679b427f 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1023,15 +1023,8 @@ static int i915_workqueues_init(struct drm_i915_private 
*dev_priv)
        if (dev_priv->hotplug.dp_wq == NULL)
                goto out_free_wq;
 
-       dev_priv->gpu_error.hangcheck_wq =
-               alloc_ordered_workqueue("i915-hangcheck", 0);
-       if (dev_priv->gpu_error.hangcheck_wq == NULL)
-               goto out_free_dp_wq;
-
        return 0;
 
-out_free_dp_wq:
-       destroy_workqueue(dev_priv->hotplug.dp_wq);
 out_free_wq:
        destroy_workqueue(dev_priv->wq);
 out_err:
@@ -1042,7 +1035,6 @@ out_err:
 
 static void i915_workqueues_cleanup(struct drm_i915_private *dev_priv)
 {
-       destroy_workqueue(dev_priv->gpu_error.hangcheck_wq);
        destroy_workqueue(dev_priv->hotplug.dp_wq);
        destroy_workqueue(dev_priv->wq);
 }
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index c162b825273f..83c0f3594c79 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1353,7 +1353,6 @@ struct i915_gpu_error {
        /* Hang gpu twice in this window and your context gets banned */
 #define DRM_I915_CTX_BAN_PERIOD DIV_ROUND_UP(8*DRM_I915_HANGCHECK_PERIOD, 1000)
 
-       struct workqueue_struct *hangcheck_wq;
        struct delayed_work hangcheck_work;
 
        /* For reset and error_state handling. */
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 1544a5677ac8..ab6fb1483309 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -3281,7 +3281,7 @@ out:
 
 void i915_queue_hangcheck(struct drm_i915_private *dev_priv)
 {
-       struct i915_gpu_error *e = &dev_priv->gpu_error;
+       unsigned long delay;
 
        if (!i915.enable_hangcheck)
                return;
@@ -3291,8 +3291,8 @@ void i915_queue_hangcheck(struct drm_i915_private 
*dev_priv)
         * we will ignore a hung ring if a second ring is kept busy.
         */
 
-       queue_delayed_work(e->hangcheck_wq, &e->hangcheck_work,
-                          
round_jiffies_up_relative(DRM_I915_HANGCHECK_JIFFIES));
+       delay = round_jiffies_up_relative(DRM_I915_HANGCHECK_JIFFIES);
+       schedule_delayed_work(&dev_priv->gpu_error.hangcheck_work, delay);
 }
 
 static void ibx_irq_reset(struct drm_device *dev)
-- 
2.8.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to