<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_REOPENED "
   title="REOPENED - [BAT] WARN_ON(dev_priv->gt.awake) during drv_module_reload_basic"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=98670#c4">Comment # 4</a>
              on <a class="bz_bug_link 
          bz_status_REOPENED "
   title="REOPENED - [BAT] WARN_ON(dev_priv->gt.awake) during drv_module_reload_basic"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=98670">bug 98670</a>
              from <span class="vcard"><a class="email" href="mailto:chris@chris-wilson.co.uk" title="Chris Wilson <chris@chris-wilson.co.uk>"> <span class="fn">Chris Wilson</span></a>
</span></b>
        <pre>Looks more likely that we are hitting one of the skip idle() checks, maybe

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 9cc50247ad44..fa9b1b68f501 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4314,7 +4314,8 @@ int i915_gem_suspend(struct drm_i915_private *dev_priv)
        cancel_delayed_work_sync(&dev_priv->gpu_error.hangcheck_work);
        cancel_delayed_work_sync(&dev_priv->gt.retire_work);
        flush_delayed_work(&dev_priv->gt.idle_work);
-       flush_work(&dev_priv->mm.free_work);
+       while (flush_work(&dev_priv->mm.free_work))
+               ;

        /* Assert that we sucessfully flushed all the work and
         * reset the GPU back to its idle, low power state.

to really drain the work.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
          <li>You are the QA Contact for the bug.</li>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>