Przeglądaj źródła

[media] af9033: improve read_signal_strength error handling slightly

Check return status after each register access routine and avoid
masking return status values.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Antti Palosaari 10 lat temu
rodzic
commit
1620d22184
1 zmienionych plików z 6 dodań i 4 usunięć
  1. 6 4
      drivers/media/dvb-frontends/af9033.c

+ 6 - 4
drivers/media/dvb-frontends/af9033.c

@@ -876,7 +876,12 @@ static int af9033_read_signal_strength(struct dvb_frontend *fe, u16 *strength)
 		*strength = u8tmp * 0xffff / 100;
 		*strength = u8tmp * 0xffff / 100;
 	} else {
 	} else {
 		ret = af9033_rd_reg(dev, 0x8000f7, &u8tmp);
 		ret = af9033_rd_reg(dev, 0x8000f7, &u8tmp);
-		ret |= af9033_rd_regs(dev, 0x80f900, buf, 7);
+		if (ret < 0)
+			goto err;
+
+		ret = af9033_rd_regs(dev, 0x80f900, buf, 7);
+		if (ret < 0)
+			goto err;
 
 
 		if (c->frequency <= 300000000)
 		if (c->frequency <= 300000000)
 			gain_offset = 7; /* VHF */
 			gain_offset = 7; /* VHF */
@@ -901,9 +906,6 @@ static int af9033_read_signal_strength(struct dvb_frontend *fe, u16 *strength)
 		*strength = tmp * 0xffff / 100;
 		*strength = tmp * 0xffff / 100;
 	}
 	}
 
 
-	if (ret)
-		goto err;
-
 	return 0;
 	return 0;
 
 
 err:
 err: