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 ae0f35cb398619304fddc2741f1b04a99e6602c6..fcbb307177bcc0672b080bf1a3f9847e2ed4c6ca 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 798e83c0107c8ff5e0166cb326848952ab5714f2..6a473e3bd64269aea8a7231b820de8755e28bb62 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 53f6f57057bb22a0ddb4c2fe96e67bf54d82b5a2..8ef35a9ac63aacd235452f96e565975ef9f9b93a 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 );