lkml.org 
[lkml]   [2021]   [May]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 62/71] ics932s401: fix broken handling of errors when word reading fails
    Date
    From: Darrick J. Wong <djwong@kernel.org>

    commit a73b6a3b4109ce2ed01dbc51a6c1551a6431b53c upstream.

    In commit b05ae01fdb89, someone tried to make the driver handle i2c read
    errors by simply zeroing out the register contents, but for some reason
    left unaltered the code that sets the cached register value the function
    call return value.

    The original patch was authored by a member of the Underhanded
    Mangle-happy Nerds, I'm not terribly surprised. I don't have the
    hardware anymore so I can't test this, but it seems like a pretty
    obvious API usage fix to me...

    Fixes: b05ae01fdb89 ("misc/ics932s401: Add a missing check to i2c_smbus_read_word_data")
    Signed-off-by: Darrick J. Wong <djwong@kernel.org>
    Link: https://lore.kernel.org/r/20210428222534.GJ3122264@magnolia
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/misc/ics932s401.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/misc/ics932s401.c
    +++ b/drivers/misc/ics932s401.c
    @@ -134,7 +134,7 @@ static struct ics932s401_data *ics932s40
    for (i = 0; i < NUM_MIRRORED_REGS; i++) {
    temp = i2c_smbus_read_word_data(client, regs_to_copy[i]);
    if (temp < 0)
    - data->regs[regs_to_copy[i]] = 0;
    + temp = 0;
    data->regs[regs_to_copy[i]] = temp >> 8;
    }


    \
     
     \ /
      Last update: 2021-05-24 18:01    [W:4.471 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site