| From d6bdb7e5a8095a013642f94db89ea243f96e669f Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 12 Aug 2022 15:40:00 -0700 |
| Subject: drm/virtio: Fix same-context optimization |
| |
| From: Rob Clark <robdclark@chromium.org> |
| |
| [ Upstream commit 3007dc2af6e86ac00b4daf7414142637fdf50bfa ] |
| |
| When VIRTGPU_EXECBUF_RING_IDX is used, we should be considering the |
| timeline that the EB if running on rather than the global driver fence |
| context. |
| |
| Fixes: 85c83ea915ed ("drm/virtio: implement context init: allocate an array of fence contexts") |
| Signed-off-by: Rob Clark <robdclark@chromium.org> |
| Link: http://patchwork.freedesktop.org/patch/msgid/20220812224001.2806463-1-robdclark@gmail.com |
| Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/virtio/virtgpu_ioctl.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/gpu/drm/virtio/virtgpu_ioctl.c b/drivers/gpu/drm/virtio/virtgpu_ioctl.c |
| index 9b2702116f93..3b1701607aae 100644 |
| --- a/drivers/gpu/drm/virtio/virtgpu_ioctl.c |
| +++ b/drivers/gpu/drm/virtio/virtgpu_ioctl.c |
| @@ -168,7 +168,7 @@ static int virtio_gpu_execbuffer_ioctl(struct drm_device *dev, void *data, |
| * array contains any fence from a foreign context. |
| */ |
| ret = 0; |
| - if (!dma_fence_match_context(in_fence, vgdev->fence_drv.context)) |
| + if (!dma_fence_match_context(in_fence, fence_ctx + ring_idx)) |
| ret = dma_fence_wait(in_fence, true); |
| |
| dma_fence_put(in_fence); |
| -- |
| 2.35.1 |
| |