[PATCH][media][V2] mb86a20s: apply mask to val after checking for read failure

From: Colin King
Date: Fri Jul 15 2016 - 12:00:05 EST


From: Colin Ian King <colin.king@xxxxxxxxxxxxx>

Appling the mask 0x0f to the immediate return of the call to
mb86a20s_readreg will always result in a positive value, meaning that the
check of ret < 0 will never work. Instead, check for a -ve return value
first, and then mask val with 0x0f.

Kudos to Mauro Carvalho Chehab for spotting the mistake in my original fix.

Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
---
drivers/media/dvb-frontends/mb86a20s.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/media/dvb-frontends/mb86a20s.c b/drivers/media/dvb-frontends/mb86a20s.c
index fb88ddd..0fffefd 100644
--- a/drivers/media/dvb-frontends/mb86a20s.c
+++ b/drivers/media/dvb-frontends/mb86a20s.c
@@ -301,10 +301,11 @@ static int mb86a20s_read_status(struct dvb_frontend *fe, enum fe_status *status)

*status = 0;

- val = mb86a20s_readreg(state, 0x0a) & 0xf;
+ val = mb86a20s_readreg(state, 0x0a);
if (val < 0)
return val;

+ val &= 0xf;
if (val >= 2)
*status |= FE_HAS_SIGNAL;

--
2.8.1