xserver: Branch 'master'

Adam Jackson ajax at kemper.freedesktop.org
Tue Feb 9 03:47:42 CET 2016


 hw/xfree86/dri2/dri2.c |    3 +++
 1 file changed, 3 insertions(+)

New commits:
commit e43abdce964f5ed9689cf908af8c305b39a5dd36
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Feb 3 09:54:46 2016 +0000

    dri2: Unblock Clients on Drawable release
    
    If the Window is destroyed by another client, such as the window
    manager, the original client may be blocked by DRI2 awaiting a vblank
    event. When this happens, DRI2DrawableGone forgets to unblock that
    client and so the wait never completes.
    
    Note Present/xshmfence is also suspectible to this race.
    
    Testcase: dri2-race/manager
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
    Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
    Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index bbff11c..dfc2f49 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -413,6 +413,9 @@ DRI2DrawableGone(void *p, XID id)
         (*pDraw->pScreen->DestroyPixmap)(pPriv->redirectpixmap);
     }
 
+    if (pPriv->blockedClient)
+        AttendClient(pPriv->blockedClient);
+
     free(pPriv);
 
     return Success;


More information about the xorg-commit mailing list