media: dvb-frontends/drxk_hard.c: fix uninitialized variable warning
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Thu, 8 Oct 2020 11:59:13 +0000 (13:59 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 8 Oct 2020 12:15:14 +0000 (14:15 +0200)
drxk_hard.c: In function 'hi_command.constprop':
drxk_hard.c:1016:5: warning: 'wait_cmd' may be used uninitialized in this function [-Wmaybe-uninitialized]
 1015 |   } while ((status < 0) && (retry_count < DRXK_MAX_RETRIES)
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1016 |     && (wait_cmd != 0));
      |     ^~~~~~~~~~~~~~~~~~

The underlying cause is that the while condition is wrong. It should be:

(status < 0 || wait_cmd) && (retry_count < DRXK_MAX_RETRIES)

'wait_cmd' is only valid if '!(status < 0)'.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/dvb-frontends/drxk_hard.c

index 32f9346..a57470b 100644 (file)
@@ -1011,8 +1011,7 @@ static int hi_command(struct drxk_state *state, u16 cmd, u16 *p_result)
                        retry_count += 1;
                        status = read16(state, SIO_HI_RA_RAM_CMD__A,
                                          &wait_cmd);
-               } while ((status < 0) && (retry_count < DRXK_MAX_RETRIES)
-                        && (wait_cmd != 0));
+               } while ((status < 0 || wait_cmd) && (retry_count < DRXK_MAX_RETRIES));
                if (status < 0)
                        goto error;
                status = read16(state, SIO_HI_RA_RAM_RES__A, p_result);