The cases of vmw_user_bo_synccpu_grab failing with -ERESTARTSYS or -EBUSY are handled in vmw_user_bo_synccpu_ioctl by not printing an error message. However, the error value gets discarded, indicating success. This leads to rendering glitches and a reported drm error on the next ioctl call to release the handle. This patch propagates the error value from vmw_user_synccpu_grab. Signed-off-by: Philipp Sieweck <psi@xxxxxxxxxxxxxxxxxxxxxx> --- drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c index 31aecc46624b..81fe4dc5e6ab 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c @@ -621,6 +621,8 @@ int vmw_user_bo_synccpu_ioctl(struct drm_device *dev, void *data, (unsigned int) arg->handle); return ret; } + if (unlikely(ret != 0)) + return ret; break; case drm_vmw_synccpu_release: ret = vmw_user_bo_synccpu_release(file_priv, -- 2.35.1