winsys/drm: Fix assert when try to accumulate an invalid fd

This patch makes sure there is a valid fd before merging it
to the context's fd in vmw_svga_winsys_fence_server_sync().

This fixes the assert running webot.
No regression running kmscube.

Reviewed-by: Sinclair Yeh <syeh@vmware.com>
This commit is contained in:
Charmaine Lee
2018-08-09 16:22:52 -07:00
committed by Brian Paul
parent 16f17e3a3c
commit f4f39fa5d9
@@ -158,8 +158,13 @@ vmw_svga_winsys_fence_server_sync(struct svga_winsys_screen *sws,
int32_t *context_fd,
struct pipe_fence_handle *fence)
{
return sync_accumulate("vmwgfx", context_fd,
sws->fence_get_fd(sws, fence, FALSE));
int32_t fd = sws->fence_get_fd(sws, fence, FALSE);
/* If we don't have fd, we don't need to merge fd into the context's fd. */
if (fd == -1)
return 0;
return sync_accumulate("vmwgfx", context_fd, fd);
}