summaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb-frontends/drxk_hard.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab2015-06-05 12:58:52 +0200
committerMauro Carvalho Chehab2015-06-05 12:58:52 +0200
commit2f60f13c14b45b311843d2ca09b5e3ef94c16f71 (patch)
tree6c3f8dd97410799dbcad7ec927796bc8b92f22a1 /drivers/media/dvb-frontends/drxk_hard.c
parent[media] vivid: don't use more than 1024 bytes of stack (diff)
downloadkernel-qcow2-linux-2f60f13c14b45b311843d2ca09b5e3ef94c16f71.tar.gz
kernel-qcow2-linux-2f60f13c14b45b311843d2ca09b5e3ef94c16f71.tar.xz
kernel-qcow2-linux-2f60f13c14b45b311843d2ca09b5e3ef94c16f71.zip
[media] drxk: better handle errors
As reported by smatch: drivers/media/dvb-frontends/drxk_hard.c:3277 dvbt_sc_command() warn: missing break? reassigning 'status' This is basically because the error handling logic there was crappy. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/dvb-frontends/drxk_hard.c')
-rw-r--r--drivers/media/dvb-frontends/drxk_hard.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/media/dvb-frontends/drxk_hard.c b/drivers/media/dvb-frontends/drxk_hard.c
index ad35264a3819..b1fc4bd44a2b 100644
--- a/drivers/media/dvb-frontends/drxk_hard.c
+++ b/drivers/media/dvb-frontends/drxk_hard.c
@@ -3262,6 +3262,7 @@ static int dvbt_sc_command(struct drxk_state *state,
}
/* Write needed parameters and the command */
+ status = 0;
switch (cmd) {
/* All commands using 5 parameters */
/* All commands using 4 parameters */
@@ -3270,16 +3271,16 @@ static int dvbt_sc_command(struct drxk_state *state,
case OFDM_SC_RA_RAM_CMD_PROC_START:
case OFDM_SC_RA_RAM_CMD_SET_PREF_PARAM:
case OFDM_SC_RA_RAM_CMD_PROGRAM_PARAM:
- status = write16(state, OFDM_SC_RA_RAM_PARAM1__A, param1);
+ status |= write16(state, OFDM_SC_RA_RAM_PARAM1__A, param1);
/* All commands using 1 parameters */
case OFDM_SC_RA_RAM_CMD_SET_ECHO_TIMING:
case OFDM_SC_RA_RAM_CMD_USER_IO:
- status = write16(state, OFDM_SC_RA_RAM_PARAM0__A, param0);
+ status |= write16(state, OFDM_SC_RA_RAM_PARAM0__A, param0);
/* All commands using 0 parameters */
case OFDM_SC_RA_RAM_CMD_GET_OP_PARAM:
case OFDM_SC_RA_RAM_CMD_NULL:
/* Write command */
- status = write16(state, OFDM_SC_RA_RAM_CMD__A, cmd);
+ status |= write16(state, OFDM_SC_RA_RAM_CMD__A, cmd);
break;
default:
/* Unknown command */