lkml.org 
[lkml]   [2012]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] lgdt330x: fix signedness error in i2c_read_demod_bytes()
    Date
    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
    ---
    drivers/media/dvb/frontends/lgdt330x.c | 6 ++++--
    1 files changed, 4 insertions(+), 2 deletions(-)

    diff --git a/drivers/media/dvb/frontends/lgdt330x.c b/drivers/media/dvb/frontends/lgdt330x.c
    index c990d35..e046622 100644
    --- a/drivers/media/dvb/frontends/lgdt330x.c
    +++ b/drivers/media/dvb/frontends/lgdt330x.c
    @@ -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;
    }
    --
    1.7.5.4


    \
     
     \ /
      Last update: 2012-02-14 19:37    [W:0.020 / U:63.724 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site