retry on EBUSY instead of EAGAIN in radeonWaitIrq (it appears this was the intention...
authorRoland Scheidegger <rscheidegger@gmx.ch>
Thu, 1 Jun 2006 23:21:43 +0000 (23:21 +0000)
committerRoland Scheidegger <rscheidegger@gmx.ch>
Thu, 1 Jun 2006 23:21:43 +0000 (23:21 +0000)
src/mesa/drivers/dri/r200/r200_ioctl.c
src/mesa/drivers/dri/r300/radeon_ioctl.c
src/mesa/drivers/dri/radeon/radeon_ioctl.c

index ae0f35c..fcbb307 100644 (file)
@@ -374,7 +374,7 @@ static void r200WaitIrq( r200ContextPtr rmesa )
    do {
       ret = drmCommandWrite( rmesa->dri.fd, DRM_RADEON_IRQ_WAIT,
                             &rmesa->iw, sizeof(rmesa->iw) );
-   } while (ret && (errno == EINTR || errno == EAGAIN));
+   } while (ret && (errno == EINTR || errno == EBUSY));
 
    if ( ret ) {
       fprintf( stderr, "%s: drmRadeonIrqWait: %d\n", __FUNCTION__, ret );
index 798e83c..6a473e3 100644 (file)
@@ -122,7 +122,7 @@ static void radeonWaitIrq(radeonContextPtr radeon)
        do {
                ret = drmCommandWrite(radeon->dri.fd, DRM_RADEON_IRQ_WAIT,
                                      &radeon->iw, sizeof(radeon->iw));
-       } while (ret && (errno == EINTR || errno == EAGAIN));
+       } while (ret && (errno == EINTR || errno == EBUSY));
 
        if (ret) {
                fprintf(stderr, "%s: drmRadeonIrqWait: %d\n", __FUNCTION__,
index 53f6f57..8ef35a9 100644 (file)
@@ -831,7 +831,7 @@ static void radeonWaitIrq( radeonContextPtr rmesa )
    do {
       ret = drmCommandWrite( rmesa->dri.fd, DRM_RADEON_IRQ_WAIT,
                             &rmesa->iw, sizeof(rmesa->iw) );
-   } while (ret && (errno == EINTR || errno == EAGAIN));
+   } while (ret && (errno == EINTR || errno == EBUSY));
 
    if ( ret ) {
       fprintf( stderr, "%s: drmRadeonIrqWait: %d\n", __FUNCTION__, ret );