Blob Blame History Raw
From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Mon, 27 Nov 2017 15:21:25 +0100
Subject: drm/virtio: Don't return invalid caps on timeout
Git-commit: 424c3f05e1673b684881b487771d38d276750b3d
Patch-mainline: v4.17-rc1
References: FATE#326289 FATE#326079 FATE#326049 FATE#322398 FATE#326166

If the wait timeouts, the caps are probably invalid and we shouldn't be
passing them to userspace.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20171127142126.25765-1-tomeu.vizoso@collabora.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Petr Tesarik <ptesarik@suse.com>
---
 drivers/gpu/drm/virtio/virtgpu_ioctl.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/gpu/drm/virtio/virtgpu_ioctl.c
+++ b/drivers/gpu/drm/virtio/virtgpu_ioctl.c
@@ -523,6 +523,8 @@ static int virtio_gpu_get_caps_ioctl(str
 
 	ret = wait_event_timeout(vgdev->resp_wq,
 				 atomic_read(&cache_ent->is_valid), 5 * HZ);
+	if (!ret)
+		return -EBUSY;
 
 	ptr = cache_ent->caps_cache;