drm/virtio: unlock object array on errors

We don't propagate erros to the callers.  We have to unlock object
arrays on errors.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20200205181955.202485-6-olvaffe@gmail.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Chia-I Wu 2020-02-05 10:19:49 -08:00 committed by Gerd Hoffmann
parent e19d341174
commit 4d8d486910
1 changed files with 4 additions and 1 deletions

View File

@ -370,8 +370,11 @@ static void virtio_gpu_queue_fenced_ctrl_buffer(struct virtio_gpu_device *vgdev,
if (is_vmalloc_addr(vbuf->data_buf)) { if (is_vmalloc_addr(vbuf->data_buf)) {
sgt = vmalloc_to_sgt(vbuf->data_buf, vbuf->data_size, sgt = vmalloc_to_sgt(vbuf->data_buf, vbuf->data_size,
&outcnt); &outcnt);
if (!sgt) if (!sgt) {
if (fence && vbuf->objs)
virtio_gpu_array_unlock_resv(vbuf->objs);
return; return;
}
vout = sgt->sgl; vout = sgt->sgl;
} else { } else {
sg_init_one(&sg, vbuf->data_buf, vbuf->data_size); sg_init_one(&sg, vbuf->data_buf, vbuf->data_size);