lkml.org 
[lkml]   [2021]   [Apr]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] ics932s401: fix broken handling of errors when word reading fails
On Wed, Apr 28, 2021 at 03:25:34PM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
>
> 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>
> ---
> drivers/misc/ics932s401.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/misc/ics932s401.c b/drivers/misc/ics932s401.c
> index 2bdf560ee681..0f9ea75b0b18 100644
> --- a/drivers/misc/ics932s401.c
> +++ b/drivers/misc/ics932s401.c
> @@ -134,7 +134,7 @@ static struct ics932s401_data *ics932s401_update_device(struct device *dev)
> 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;
> }
>

Many thanks for looking at this again, I'll add it to my series of
patches for "reviewing all the crap and fixing it up" that I will be
working to get merged for 5.13-final.

greg k-h

\
 
 \ /
  Last update: 2021-04-29 09:15    [W:0.050 / U:2.100 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site