Commit f98c5ec2 authored by Melissa Wen's avatar Melissa Wen Committed by Melissa Wen

drm/v3d: cleanup BOs properly when lookup_bos fails

When v3d_lookup_bos fails to `allocate validated BO pointers`,
job->bo_count was already set to args->bo_count, but job->bo points to
NULL. In this scenario, we must verify that job->bo is not NULL before
iterating on it to proper clean up a job. Also, drm_gem_object_put
already checks that the object passed is not NULL, doing the job->bo[i]
checker redundant.
Signed-off-by: default avatarMelissa Wen <mwen@igalia.com>
Reviewed-by: default avatarMaíra Canal <mcanal@igalia.com>
Signed-off-by: default avatarMelissa Wen <melissa.srw@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221205135538.3545051-2-mwen@igalia.com
parent 4b6cb2b6
...@@ -363,11 +363,11 @@ v3d_job_free(struct kref *ref) ...@@ -363,11 +363,11 @@ v3d_job_free(struct kref *ref)
struct v3d_job *job = container_of(ref, struct v3d_job, refcount); struct v3d_job *job = container_of(ref, struct v3d_job, refcount);
int i; int i;
for (i = 0; i < job->bo_count; i++) { if (job->bo) {
if (job->bo[i]) for (i = 0; i < job->bo_count; i++)
drm_gem_object_put(job->bo[i]); drm_gem_object_put(job->bo[i]);
}
kvfree(job->bo); kvfree(job->bo);
}
dma_fence_put(job->irq_fence); dma_fence_put(job->irq_fence);
dma_fence_put(job->done_fence); dma_fence_put(job->done_fence);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment