mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-06 08:47:44 -04:00
[media] lgdt330x: fix signedness error in i2c_read_demod_bytes()
The error handling in lgdt3303_read_status() and lgdt330x_read_ucblocks()
doesn't work, because i2c_read_demod_bytes() returns a u8 and (err < 0)
is always false.
err = i2c_read_demod_bytes(state, 0x58, buf, 1);
if (err < 0)
return err;
Change the return type of i2c_read_demod_bytes() to int. Also change
the return value on error to -EIO to make (err < 0) work.
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
bdb2c41fc1
commit
34817174fc
@@ -104,8 +104,8 @@ static int i2c_write_demod_bytes (struct lgdt330x_state* state,
|
||||
* then reads the data returned for (len) bytes.
|
||||
*/
|
||||
|
||||
static u8 i2c_read_demod_bytes (struct lgdt330x_state* state,
|
||||
enum I2C_REG reg, u8* buf, int len)
|
||||
static int i2c_read_demod_bytes(struct lgdt330x_state *state,
|
||||
enum I2C_REG reg, u8 *buf, int len)
|
||||
{
|
||||
u8 wr [] = { reg };
|
||||
struct i2c_msg msg [] = {
|
||||
@@ -118,6 +118,8 @@ static u8 i2c_read_demod_bytes (struct lgdt330x_state* state,
|
||||
ret = i2c_transfer(state->i2c, msg, 2);
|
||||
if (ret != 2) {
|
||||
printk(KERN_WARNING "lgdt330x: %s: addr 0x%02x select 0x%02x error (ret == %i)\n", __func__, state->config->demod_address, reg, ret);
|
||||
if (ret >= 0)
|
||||
ret = -EIO;
|
||||
} else {
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user