On 03/11/2017 at 13:32:41 -0400, Akshay Bhat wrote: > The err variable is not being reset after a successful read. Explicitly > reset err variable to account for all return paths. > > Reported-by: Jens-Peter Oswald <oswald@xxxxxx> > Signed-off-by: Akshay Bhat <akshay.bhat@xxxxxxxxxxx> > --- > drivers/rtc/rtc-rx8010.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/rtc/rtc-rx8010.c b/drivers/rtc/rtc-rx8010.c > index 2e06e5f..1ce2078 100644 > --- a/drivers/rtc/rtc-rx8010.c > +++ b/drivers/rtc/rtc-rx8010.c > @@ -223,6 +223,7 @@ static int rx8010_init_client(struct i2c_client *client) > 2, ctrl); > if (err != 2) > return err < 0 ? err : -EIO; > + err = 0; Isn't it simpler to make the function return 0 instead of err at the end? > > if (ctrl[0] & RX8010_FLAG_VLF) > dev_warn(&client->dev, "Frequency stop was detected\n"); > @@ -261,6 +262,7 @@ static int rx8010_read_alarm(struct device *dev, struct rtc_wkalrm *t) > err = i2c_smbus_read_i2c_block_data(client, RX8010_ALMIN, 3, alarmvals); > if (err != 3) > return err < 0 ? err : -EIO; > + err = 0; ditto > > flagreg = i2c_smbus_read_byte_data(client, RX8010_FLAG); > if (flagreg < 0) > -- > 2.7.4 > -- Alexandre Belloni, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com