Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

+4 -3
+4 -3
drivers/media/dvb-frontends/drxk_hard.c
··· 3262 3262 } 3263 3263 3264 3264 /* Write needed parameters and the command */ 3265 + status = 0; 3265 3266 switch (cmd) { 3266 3267 /* All commands using 5 parameters */ 3267 3268 /* All commands using 4 parameters */ ··· 3271 3270 case OFDM_SC_RA_RAM_CMD_PROC_START: 3272 3271 case OFDM_SC_RA_RAM_CMD_SET_PREF_PARAM: 3273 3272 case OFDM_SC_RA_RAM_CMD_PROGRAM_PARAM: 3274 - status = write16(state, OFDM_SC_RA_RAM_PARAM1__A, param1); 3273 + status |= write16(state, OFDM_SC_RA_RAM_PARAM1__A, param1); 3275 3274 /* All commands using 1 parameters */ 3276 3275 case OFDM_SC_RA_RAM_CMD_SET_ECHO_TIMING: 3277 3276 case OFDM_SC_RA_RAM_CMD_USER_IO: 3278 - status = write16(state, OFDM_SC_RA_RAM_PARAM0__A, param0); 3277 + status |= write16(state, OFDM_SC_RA_RAM_PARAM0__A, param0); 3279 3278 /* All commands using 0 parameters */ 3280 3279 case OFDM_SC_RA_RAM_CMD_GET_OP_PARAM: 3281 3280 case OFDM_SC_RA_RAM_CMD_NULL: 3282 3281 /* Write command */ 3283 - status = write16(state, OFDM_SC_RA_RAM_CMD__A, cmd); 3282 + status |= write16(state, OFDM_SC_RA_RAM_CMD__A, cmd); 3284 3283 break; 3285 3284 default: 3286 3285 /* Unknown command */