2023-05-17 17:23:57

by Jeffrey Hugo

[permalink] [raw]
Subject: [PATCH v2] accel/qaic: initialize ret variable to 0

From: Tom Rix <[email protected]>

clang static analysis reports
drivers/accel/qaic/qaic_data.c:610:2: warning: Undefined or garbage
value returned to caller [core.uninitialized.UndefReturn]
return ret;
^~~~~~~~~~

From a code analysis of the function, the ret variable is only set some
of the time but is always returned. This suggests ret can return
uninitialized garbage. However BO allocation will ensure ret is always
set in reality.

Initialize ret to 0 to silence the warning.

Fixes: ff13be830333 ("accel/qaic: Add datapath")
Signed-off-by: Tom Rix <[email protected]>
[jhugo: Reword commit text]
Signed-off-by: Jeffrey Hugo <[email protected]>
---
drivers/accel/qaic/qaic_data.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/accel/qaic/qaic_data.c b/drivers/accel/qaic/qaic_data.c
index 8ab26e64b231..e42c1f9ffff8 100644
--- a/drivers/accel/qaic/qaic_data.c
+++ b/drivers/accel/qaic/qaic_data.c
@@ -591,7 +591,7 @@ static int qaic_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_struc
struct qaic_bo *bo = to_qaic_bo(obj);
unsigned long offset = 0;
struct scatterlist *sg;
- int ret;
+ int ret = 0;

if (obj->import_attach)
return -EINVAL;
--
2.40.1



2023-05-17 17:26:01

by Carl Vanderlip

[permalink] [raw]
Subject: Re: [PATCH v2] accel/qaic: initialize ret variable to 0

On 5/17/2023 9:56 AM, Jeffrey Hugo wrote:
> From: Tom Rix <[email protected]>
>
> clang static analysis reports
> drivers/accel/qaic/qaic_data.c:610:2: warning: Undefined or garbage
> value returned to caller [core.uninitialized.UndefReturn]
> return ret;
> ^~~~~~~~~~
>
>>From a code analysis of the function, the ret variable is only set some
> of the time but is always returned. This suggests ret can return
> uninitialized garbage. However BO allocation will ensure ret is always
> set in reality.
>
> Initialize ret to 0 to silence the warning.
>
> Fixes: ff13be830333 ("accel/qaic: Add datapath")
> Signed-off-by: Tom Rix <[email protected]>
> [jhugo: Reword commit text]
> Signed-off-by: Jeffrey Hugo <[email protected]>
> ---
> drivers/accel/qaic/qaic_data.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/accel/qaic/qaic_data.c b/drivers/accel/qaic/qaic_data.c
> index 8ab26e64b231..e42c1f9ffff8 100644
> --- a/drivers/accel/qaic/qaic_data.c
> +++ b/drivers/accel/qaic/qaic_data.c
> @@ -591,7 +591,7 @@ static int qaic_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_struc
> struct qaic_bo *bo = to_qaic_bo(obj);
> unsigned long offset = 0;
> struct scatterlist *sg;
> - int ret;
> + int ret = 0;
>
> if (obj->import_attach)
> return -EINVAL;


LGTM

Reviewed-by: Carl Vanderlip <[email protected]>

Subject: Re: [PATCH v2] accel/qaic: initialize ret variable to 0



On 5/17/2023 10:26 PM, Jeffrey Hugo wrote:
> From: Tom Rix <[email protected]>
>
> clang static analysis reports
> drivers/accel/qaic/qaic_data.c:610:2: warning: Undefined or garbage
> value returned to caller [core.uninitialized.UndefReturn]
> return ret;
> ^~~~~~~~~~
>
> From a code analysis of the function, the ret variable is only set some
> of the time but is always returned. This suggests ret can return
> uninitialized garbage. However BO allocation will ensure ret is always
> set in reality.
>
> Initialize ret to 0 to silence the warning.
>
> Fixes: ff13be830333 ("accel/qaic: Add datapath")
> Signed-off-by: Tom Rix <[email protected]>
> [jhugo: Reword commit text]
> Signed-off-by: Jeffrey Hugo <[email protected]>
> ---
> drivers/accel/qaic/qaic_data.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/accel/qaic/qaic_data.c b/drivers/accel/qaic/qaic_data.c
> index 8ab26e64b231..e42c1f9ffff8 100644
> --- a/drivers/accel/qaic/qaic_data.c
> +++ b/drivers/accel/qaic/qaic_data.c
> @@ -591,7 +591,7 @@ static int qaic_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_struc
> struct qaic_bo *bo = to_qaic_bo(obj);
> unsigned long offset = 0;
> struct scatterlist *sg;
> - int ret;
> + int ret = 0;
>
> if (obj->import_attach)
> return -EINVAL;

Reviewed-by: Pranjal Ramajor Asha Kanojiya <[email protected]>

2023-05-23 16:21:17

by Jeffrey Hugo

[permalink] [raw]
Subject: Re: [PATCH v2] accel/qaic: initialize ret variable to 0

On 5/17/2023 10:56 AM, Jeffrey Hugo wrote:
> From: Tom Rix <[email protected]>
>
> clang static analysis reports
> drivers/accel/qaic/qaic_data.c:610:2: warning: Undefined or garbage
> value returned to caller [core.uninitialized.UndefReturn]
> return ret;
> ^~~~~~~~~~
>
> From a code analysis of the function, the ret variable is only set some
> of the time but is always returned. This suggests ret can return
> uninitialized garbage. However BO allocation will ensure ret is always
> set in reality.
>
> Initialize ret to 0 to silence the warning.
>
> Fixes: ff13be830333 ("accel/qaic: Add datapath")
> Signed-off-by: Tom Rix <[email protected]>
> [jhugo: Reword commit text]
> Signed-off-by: Jeffrey Hugo <[email protected]>

Pushed to drm-misc-fixes