Re: [PATCH 1/2] sh: kfr2r09: fix i2c adapter leak on USB gdaget setup

Johan Hovold <[email protected]> Thu, 25 Jun 2026 08:45:19 +0200
Newsgroups org.kernel.vger.linux-sh,org.kernel.vger.linux-kernel,org.kernel.vger.stable
Message-ID <[email protected]>
Hi Geert,

On Wed, Jun 24, 2026 at 10:29:41AM +0200, Geert Uytterhoeven wrote:

> On Fri, 8 May 2026 at 14:06, Johan Hovold <[email protected]> wrote:
> > Make sure to drop the reference taken to the I2C adapter (and its
> > module) when enabling USB gadget mode which prevents the adapter from
> > ever being deregistered.
> >
> > Fixes: 5a1c4cb5bc22 ("sh: add r8a66597 usb0 gadget to the kfr2r09 board")
> > Cc: [email protected]      # 2.6.32
> > Cc: Magnus Damm <[email protected]>
> > Signed-off-by: Johan Hovold <[email protected]>

> > @@ -387,9 +387,16 @@ static int kfr2r09_usb0_gadget_i2c_setup(void)
> >         msg.flags = 0;
> >         ret = i2c_transfer(a, &msg, 1);
> >         if (ret != 1)
> > -               return -ENODEV;
> > +               goto err_put_adapter;
> > +
> > +       i2c_put_adapter(a);
> >
> >         return 0;
> > +
> > +err_put_adapter:
> > +       i2c_put_adapter(a);
> > +
> > +       return -ENODEV;
> 
> I case i2c_transfer() returns a negative error code (the other
> possible value is zero, right?), you might want to propagate that to
> the caller. However, the single caller replaces it by -ENODEV anyway,
> so I guess your patch is fine.

Yes, indeed, but that's arguably a separate change. And in this case it
doesn't really matter currently as you point out.
 
> Reviewed-by: Geert Uytterhoeven <[email protected]>

Thanks for reviewing.

Johan