[PATCH v2 04/17] drm/v3d: Simplify job refcount handling
Iago Toral
itoral at igalia.com
Mon Nov 27 07:57:23 UTC 2023
El jue, 23-11-2023 a las 21:47 -0300, Maíra Canal escribió:
> From: Melissa Wen <mwen at igalia.com>
>
> Instead of checking if the job is NULL every time we call the
> function,
> check it inside the function.
>
> Signed-off-by: Melissa Wen <mwen at igalia.com>
> Signed-off-by: Maíra Canal <mcanal at igalia.com>
> ---
> drivers/gpu/drm/v3d/v3d_submit.c | 15 ++++++++-------
> 1 file changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/v3d/v3d_submit.c
> b/drivers/gpu/drm/v3d/v3d_submit.c
> index f36214002f37..e18e7c963884 100644
> --- a/drivers/gpu/drm/v3d/v3d_submit.c
> +++ b/drivers/gpu/drm/v3d/v3d_submit.c
> @@ -129,6 +129,9 @@ void v3d_job_cleanup(struct v3d_job *job)
>
> void v3d_job_put(struct v3d_job *job)
> {
> + if (!job)
> + return;
> +
> kref_put(&job->refcount, job->free);
> }
>
> @@ -517,11 +520,9 @@ v3d_submit_cl_ioctl(struct drm_device *dev, void
> *data,
> &se,
> last_job-
> >done_fence);
>
> - if (bin)
> - v3d_job_put(&bin->base);
> - v3d_job_put(&render->base);
> - if (clean_job)
> - v3d_job_put(clean_job);
> + v3d_job_put((void *)bin);
> + v3d_job_put((void *)render);
> + v3d_job_put((void *)clean_job);
Personally, I am not a big fan of casting to void* instead of using
&job->base for all the v3d_job_put calls in this patch.
Iago
>
> return 0;
>
> @@ -621,7 +622,7 @@ v3d_submit_tfu_ioctl(struct drm_device *dev, void
> *data,
> &se,
> job-
> >base.done_fence);
>
> - v3d_job_put(&job->base);
> + v3d_job_put((void *)job);
>
> return 0;
>
> @@ -725,7 +726,7 @@ v3d_submit_csd_ioctl(struct drm_device *dev, void
> *data,
> &se,
> clean_job-
> >done_fence);
>
> - v3d_job_put(&job->base);
> + v3d_job_put((void *)job);
> v3d_job_put(clean_job);
>
> return 0;
More information about the dri-devel
mailing list