summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/virtio/virtgpu_submit.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/virtio/virtgpu_submit.c')
-rw-r--r--drivers/gpu/drm/virtio/virtgpu_submit.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/gpu/drm/virtio/virtgpu_submit.c b/drivers/gpu/drm/virtio/virtgpu_submit.c
index 7d34cf83f5f2..32cb1e4aa425 100644
--- a/drivers/gpu/drm/virtio/virtgpu_submit.c
+++ b/drivers/gpu/drm/virtio/virtgpu_submit.c
@@ -65,8 +65,10 @@ static int virtio_gpu_dma_fence_wait(struct virtio_gpu_submit *submit,
dma_fence_unwrap_for_each(f, &itr, fence) {
err = virtio_gpu_do_fence_wait(submit, f);
- if (err)
+ if (err) {
+ dma_fence_put(itr.chain);
return err;
+ }
}
return 0;
@@ -104,7 +106,7 @@ virtio_gpu_parse_deps(struct virtio_gpu_submit *submit)
* internally for allocations larger than a page size, preventing
* storm of KMSG warnings.
*/
- syncobjs = kvcalloc(num_in_syncobjs, sizeof(*syncobjs), GFP_KERNEL);
+ syncobjs = kvzalloc_objs(*syncobjs, num_in_syncobjs);
if (!syncobjs)
return -ENOMEM;
@@ -195,7 +197,7 @@ static int virtio_gpu_parse_post_deps(struct virtio_gpu_submit *submit)
if (!num_out_syncobjs)
return 0;
- post_deps = kvcalloc(num_out_syncobjs, sizeof(*post_deps), GFP_KERNEL);
+ post_deps = kvzalloc_objs(*post_deps, num_out_syncobjs);
if (!post_deps)
return -ENOMEM;
@@ -277,7 +279,7 @@ static int virtio_gpu_fence_event_create(struct drm_device *dev,
struct virtio_gpu_fence_event *e = NULL;
int ret;
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e);
if (!e)
return -ENOMEM;