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

From: Jeffrey Hugo
Date: Tue Apr 18 2023 - 16:47:27 EST


On 4/18/2023 1:20 PM, Tom Rix wrote:
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;
^~~~~~~~~~

The ret variable is only set some of the time but is always returned.
So initialize ret to 0.

This does not appear to be entirely accurate to me.

Do you know what analysis Clang is doing? Is it limited to the function itself?

remap_pfn_range, which initializes ret, will always run at-least once.

Feels more accurate to say that Clang cannot detect that ret will be initialized, and we want to quiet the warning from the false positive.

Fixes: ff13be830333 ("accel/qaic: Add datapath")
Signed-off-by: Tom Rix <trix@xxxxxxxxxx>
---
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 c0a574cd1b35..b46a16fb3080 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;