Drivers sometimes don't call drm_vblank_init() (e.g. radeon [1],
vboxvideo [2], mga driver on out of memory condition, etc.), therefore
flip_list is left uninitialized. I did not test the patch yet.

[1] http://www.kerneloops.org/search.php?search=drm_release&btnG=Function+Search
[2] http://www.virtualbox.org/ticket/4734

This should have been a reply to "[PATCH] Add modesetting pageflip
ioctl and corresponding drm event", but I couldn't find a Message-ID I
could feed to git-send-email, so that it would appear as reply, sorry
for that.
---
 drivers/gpu/drm/drm_fops.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
index dcd9c66..a40d36b 100644
--- a/drivers/gpu/drm/drm_fops.c
+++ b/drivers/gpu/drm/drm_fops.c
@@ -459,9 +459,10 @@ int drm_release(struct inode *inode, struct file *filp)
        mutex_lock(&dev->struct_mutex);
 
        /* Remove pending flips */
-       list_for_each_entry_safe(f, ft, &dev->flip_list, link)
-               if (f->pending_event.file_priv == file_priv)
-                       drm_finish_pending_flip(dev, f, 0);
+       if (dev->num_crtcs == 0)
+               list_for_each_entry_safe(f, ft, &dev->flip_list, link)
+                       if (f->pending_event.file_priv == file_priv)
+                               drm_finish_pending_flip(dev, f, 0);
 
        /* Remove unconsumed events */
        list_for_each_entry_safe(e, et, &file_priv->event_list, link)
-- 
1.6.2.5


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to