2023-12-04 12:21:52

by Harshit Mogalapalli

[permalink] [raw]
Subject: [PATCH next] drm/v3d: Fix missing error code in v3d_submit_cpu_ioctl()

Smatch warns:
drivers/gpu/drm/v3d/v3d_submit.c:1222 v3d_submit_cpu_ioctl()
warn: missing error code 'ret'

When there is no job type or job is submitted with wrong number of BOs
it is an error path, ret is zero at this point which is incorrect
return.

Fix this by changing it to -EINVAL.

Fixes: aafc1a2bea67 ("drm/v3d: Add a CPU job submission")
Signed-off-by: Harshit Mogalapalli <[email protected]>
---
This is based on static analysis and only compile tested.
---
drivers/gpu/drm/v3d/v3d_submit.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/v3d/v3d_submit.c b/drivers/gpu/drm/v3d/v3d_submit.c
index d7a9da2484fd..fcff41dd2315 100644
--- a/drivers/gpu/drm/v3d/v3d_submit.c
+++ b/drivers/gpu/drm/v3d/v3d_submit.c
@@ -1219,11 +1219,13 @@ v3d_submit_cpu_ioctl(struct drm_device *dev, void *data,
/* Every CPU job must have a CPU job user extension */
if (!cpu_job->job_type) {
DRM_DEBUG("CPU job must have a CPU job user extension.\n");
+ ret = -EINVAL;
goto fail;
}

if (args->bo_handle_count != cpu_job_bo_handle_count[cpu_job->job_type]) {
DRM_DEBUG("This CPU job was not submitted with the proper number of BOs.\n");
+ ret = -EINVAL;
goto fail;
}

--
2.39.3


2023-12-04 14:52:09

by Melissa Wen

[permalink] [raw]
Subject: Re: [PATCH next] drm/v3d: Fix missing error code in v3d_submit_cpu_ioctl()

On 12/04, Harshit Mogalapalli wrote:
> Smatch warns:
> drivers/gpu/drm/v3d/v3d_submit.c:1222 v3d_submit_cpu_ioctl()
> warn: missing error code 'ret'
>
> When there is no job type or job is submitted with wrong number of BOs
> it is an error path, ret is zero at this point which is incorrect
> return.
>
> Fix this by changing it to -EINVAL.
>
> Fixes: aafc1a2bea67 ("drm/v3d: Add a CPU job submission")
> Signed-off-by: Harshit Mogalapalli <[email protected]>
> ---
> This is based on static analysis and only compile tested.
> ---
> drivers/gpu/drm/v3d/v3d_submit.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/v3d/v3d_submit.c b/drivers/gpu/drm/v3d/v3d_submit.c
> index d7a9da2484fd..fcff41dd2315 100644
> --- a/drivers/gpu/drm/v3d/v3d_submit.c
> +++ b/drivers/gpu/drm/v3d/v3d_submit.c
> @@ -1219,11 +1219,13 @@ v3d_submit_cpu_ioctl(struct drm_device *dev, void *data,
> /* Every CPU job must have a CPU job user extension */
> if (!cpu_job->job_type) {
> DRM_DEBUG("CPU job must have a CPU job user extension.\n");
> + ret = -EINVAL;
> goto fail;
> }
>
> if (args->bo_handle_count != cpu_job_bo_handle_count[cpu_job->job_type]) {
> DRM_DEBUG("This CPU job was not submitted with the proper number of BOs.\n");
> + ret = -EINVAL;

Nice catch. Thanks!

Reviewed-by: Melissa Wen <[email protected]>

I'll apply to drm-misc-next.

> goto fail;
> }
>
> --
> 2.39.3
>