media: ov9650: fix bogus warnings
authorMauro Carvalho Chehab <mchehab@s-opensource.com>
Wed, 1 Nov 2017 21:05:56 +0000 (17:05 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Mon, 11 Dec 2017 18:04:55 +0000 (13:04 -0500)
The smatch logic gets confused with the syntax used to check if the
ov9650x_read() reads succedded:
drivers/media/i2c/ov9650.c:895 __g_volatile_ctrl() error: uninitialized symbol 'reg2'.
drivers/media/i2c/ov9650.c:895 __g_volatile_ctrl() error: uninitialized symbol 'reg1'.

There's nothing wrong with the original logic, except that
it is a little more harder to review.

So, let's stick with the syntax that won't cause read
issues.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Reviewed-by: Nicholas Mc Guire <hofrat@osadl.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/i2c/ov9650.c

index 69433e1e25335b263140e8a131a8a184d441573c..e519f278d5f973452c66af07c25e977d3bbfb435 100644 (file)
@@ -886,10 +886,12 @@ static int __g_volatile_ctrl(struct ov965x *ov965x, struct v4l2_ctrl *ctrl)
                if (ctrl->val == V4L2_EXPOSURE_MANUAL)
                        return 0;
                ret = ov965x_read(client, REG_COM1, &reg0);
-               if (!ret)
-                       ret = ov965x_read(client, REG_AECH, &reg1);
-               if (!ret)
-                       ret = ov965x_read(client, REG_AECHM, &reg2);
+               if (ret < 0)
+                       return ret;
+               ret = ov965x_read(client, REG_AECH, &reg1);
+               if (ret < 0)
+                       return ret;
+               ret = ov965x_read(client, REG_AECHM, &reg2);
                if (ret < 0)
                        return ret;
                exposure = ((reg2 & 0x3f) << 10) | (reg1 << 2) |