drm/virtio: add fence sanity check

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

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20190829103301.3539-19-kraxel@redhat.com
This commit is contained in:
Gerd Hoffmann 2019-08-29 12:33:01 +02:00
parent 6e3372508d
commit 12afce08ed

View File

@ -41,6 +41,10 @@ bool virtio_fence_signaled(struct dma_fence *f)
{ {
struct virtio_gpu_fence *fence = to_virtio_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) if (atomic64_read(&fence->drv->last_seq) >= fence->f.seqno)
return true; return true;
return false; return false;