Make sure we don't leak half-initialized fences outside the driver.

Signed-off-by: Gerd Hoffmann <kra...@redhat.com>
---
 drivers/gpu/drm/virtio/virtgpu_fence.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/virtio/virtgpu_fence.c 
b/drivers/gpu/drm/virtio/virtgpu_fence.c
index a0514f5bd006..a4b9881ca1d3 100644
--- a/drivers/gpu/drm/virtio/virtgpu_fence.c
+++ b/drivers/gpu/drm/virtio/virtgpu_fence.c
@@ -41,6 +41,10 @@ bool virtio_fence_signaled(struct dma_fence *f)
 {
        struct virtio_gpu_fence *fence = to_virtio_fence(f);
 
+       if (WARN_ON_ONCE(fence->f.seqno == 0))
+               /* leaked fence outside driver before completing
+                * initialization with virtio_gpu_fence_emit */
+               return false;
        if (atomic64_read(&fence->drv->last_seq) >= fence->f.seqno)
                return true;
        return false;
-- 
2.18.1

Reply via email to