summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/virtio/virtgpu_vq.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2020-02-07 09:46:53 +0300
committerGerd Hoffmann <kraxel@redhat.com>2020-02-07 11:33:55 +0300
commit5edbb56082567d754a096286368e99a3377d8c95 (patch)
tree72df0e1c229dd3645a53542467343b99afb49b29 /drivers/gpu/drm/virtio/virtgpu_vq.c
parent96b5d1bee29f12fe5d75a96992bd67f3c46c9048 (diff)
downloadlinux-5edbb56082567d754a096286368e99a3377d8c95.tar.xz
drm/virtio: fix ring free check
If the virtio device supports indirect ring descriptors we need only one ring entry for the whole command. Take that into account when checking whenever the virtqueue has enough free entries for our command. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Chia-I Wu <olvaffe@gmail.com> Link: http://patchwork.freedesktop.org/patch/msgid/20200207064653.14403-1-kraxel@redhat.com
Diffstat (limited to 'drivers/gpu/drm/virtio/virtgpu_vq.c')
-rw-r--r--drivers/gpu/drm/virtio/virtgpu_vq.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c
index 41e475fbd67b..cc02fc4bab2a 100644
--- a/drivers/gpu/drm/virtio/virtgpu_vq.c
+++ b/drivers/gpu/drm/virtio/virtgpu_vq.c
@@ -330,6 +330,9 @@ static void virtio_gpu_queue_ctrl_sgs(struct virtio_gpu_device *vgdev,
bool notify = false;
int ret;
+ if (vgdev->has_indirect)
+ elemcnt = 1;
+
again:
spin_lock(&vgdev->ctrlq.qlock);