On Sun, 2022-03-13 at 06:06 +0100, Philipp Sieweck wrote:
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@informatik.uni-kiel.de
Hi, Philipp.
Thanks for the patch. Some questions below.
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;
I'd just break apart the condition above rather than have two if ret != 0. What apps do you see glitches in as a result of this? Can you reproduce it?
z