[Intel-gfx] [RFC] drm: drm_vblank_cleanup: WARN when refcount is more than 0

PrasannaKumar Muralidharan prasannatsmkumar at gmail.com
Thu Oct 12 17:00:06 UTC 2017


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 <prasannatsmkumar at 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



More information about the Intel-gfx mailing list