Warn when refcount > 0 in drm_vblank_cleanup.

In i915 driver unload drm_vblank_get is added to test whether this patch
is working. This will be removed once the patch gets tested.

Signed-off-by: PrasannaKumar Muralidharan <prasannatsmku...@gmail.com>
---
 drivers/gpu/drm/drm_vblank.c    | 2 ++
 drivers/gpu/drm/i915/i915_drv.c | 1 +
 2 files changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index 70f2b95..2a6630a 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -402,6 +402,8 @@ void drm_vblank_cleanup(struct drm_device *dev)
        if (dev->num_crtcs == 0)
                return;
 
+       WARN_ON(atomic_read(&vblank->refcount) > 0);
+
        for (pipe = 0; pipe < dev->num_crtcs; pipe++) {
                struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
 
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 9f45cfe..c7a93a9 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -1373,6 +1373,7 @@ void i915_driver_unload(struct drm_device *dev)
        struct drm_i915_private *dev_priv = to_i915(dev);
        struct pci_dev *pdev = dev_priv->drm.pdev;
 
+       drm_vblank_get(dev_priv, 0);
        i915_driver_unregister(dev_priv);
 
        if (i915_gem_suspend(dev_priv))
-- 
2.10.0

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

Reply via email to