diff mbox

uxa: fix getmsc to not fail hard

Message ID 1400640118-32478-1-git-send-email-airlied@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dave Airlie May 21, 2014, 2:41 a.m. UTC
From: Dave Airlie <airlied@redhat.com>

If some outputs go away we race with this call and apps
get X errors and fall over. Do what SNA does and don't
bother trying.

Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 src/uxa/intel_dri.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Chris Wilson May 21, 2014, 6:52 a.m. UTC | #1
On Wed, May 21, 2014 at 12:41:58PM +1000, Dave Airlie wrote:
> From: Dave Airlie <airlied@redhat.com>
> 
> If some outputs go away we race with this call and apps
> get X errors and fall over. Do what SNA does and don't
> bother trying.

Horrible clients is why I gave up trying to report BadMatch for the
inactive pipe. Though it has been a long time since the kernel turned
off CRTCs without intervention from userspace.

This is a useful safeguard, though it angers the OML sync proponents.
Pushed, thanks.
-Chris
diff mbox

Patch

diff --git a/src/uxa/intel_dri.c b/src/uxa/intel_dri.c
index 0370034..5d1262a 100644
--- a/src/uxa/intel_dri.c
+++ b/src/uxa/intel_dri.c
@@ -1351,6 +1351,7 @@  I830DRI2GetMSC(DrawablePtr draw, CARD64 *ust, CARD64 *msc)
 
 	/* Drawable not displayed, make up a *monotonic* value */
 	if (pipe == -1) {
+fail:
 		*ust = gettime_us();
 		*msc = 0;
 		return TRUE;
@@ -1369,7 +1370,7 @@  I830DRI2GetMSC(DrawablePtr draw, CARD64 *ust, CARD64 *msc)
 				   strerror(errno));
 			limit--;
 		}
-		return FALSE;
+		goto fail;
 	}
 
 	*ust = ((CARD64)vbl.reply.tval_sec * 1000000) + vbl.reply.tval_usec;