diff options
-rw-r--r-- | src/gallium/winsys/svga/drm/vmw_screen_ioctl.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c b/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c index ab60265bdd2..3b14f1d3513 100644 --- a/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c +++ b/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c @@ -564,7 +564,9 @@ vmw_ioctl_command(struct vmw_winsys_screen *vws, int32_t cid, offsetof(struct drm_vmw_execbuf_arg, context_handle); do { ret = drmCommandWrite(vws->ioctl.drm_fd, DRM_VMW_EXECBUF, &arg, argsize); - } while(ret == -ERESTART); + if (ret == -EBUSY) + usleep(1000); + } while(ret == -ERESTART || ret == -EBUSY); if (ret) { vmw_error("%s error %s.\n", __FUNCTION__, strerror(-ret)); abort(); |