On Wed, Jun 29, 2022 at 05:58:39PM +0200, Geert Uytterhoeven wrote: > On Wed, Jun 29, 2022 at 12:46 PM Andy Shevchenko > <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > > On Wed, Jun 29, 2022 at 08:52:27AM +0200, Geert Uytterhoeven wrote: > > > On Tue, Jun 28, 2022 at 11:08 PM Andy Shevchenko > > > <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > > > > On Tue, Jun 28, 2022 at 08:45:26PM +0100, Phil Edworthy wrote: ... > > > > > +static int rzv2m_i2c_send(struct rzv2m_i2c_priv *priv, struct i2c_msg *msg, > > > > > + unsigned int *count) > > > > > +{ > > > > > + unsigned int i; > > > > > + int ret = 0; > > > > > > > > Redundant assignment, you may return 0 directly. ^^^ > > > Can you prove msg->len is never zero, and the loop below is always > > > executed at least once? > > > > I don't see how this is related. The ret is used only in the loop body, > > > > return 0; > > > > outside will suffice. No? > > Right, with the "return ret" in the end replaced. Exactly what I meant above with "you may return 0 directly". > > > The driver does set I2C_AQ_NO_ZERO_LEN, but I don't think the static > > > checkers know ;-) > > > > > > > > + for (i = 0; i < msg->len; i++) { > > > > > + ret = rzv2m_i2c_write_with_ack(priv, msg->buf[i]); > > > > > + if (ret < 0) > > > > > + return ret; > > > > > + } > > > > > + *count = i; > > > > > + > > > > > + return ret; > > > > > +} -- With Best Regards, Andy Shevchenko