On Wed, May 04, 2022 at 02:58:40PM +0100, Colin Ian King wrote: > Currently when driver->match_existing_only is true, the error return is > set to -EBUSY however ret is then set to 0 at the end of the if/else > statement. I believe the ret = 0 statement should be set in the else > part of the if statement and not at the end to ensure -EBUSY is being > returned correctly. > > Detected by clang scan: > drivers/usb/gadget/udc/core.c:1558:4: warning: Value stored to 'ret' is > never read [deadcode.DeadStores] > > Fixes: fc274c1e9973 ("USB: gadget: Add a new bus for gadgets") > Signed-off-by: Colin Ian King <colin.i.king@xxxxxxxxx> > --- Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> Don't know how I missed that. Thanks for fixing it. In fact, since it's guaranteed that ret is already 0 before the driver->match_existing_only test, you could eliminate the assignment entirely. But moving it into the second branch of the "if" statement is probably more clear. Alan Stern > drivers/usb/gadget/udc/core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c > index 61790592b2c8..3281d8a3dae7 100644 > --- a/drivers/usb/gadget/udc/core.c > +++ b/drivers/usb/gadget/udc/core.c > @@ -1559,8 +1559,8 @@ int usb_gadget_register_driver_owner(struct usb_gadget_driver *driver, > } else { > pr_info("%s: couldn't find an available UDC\n", > driver->function); > + ret = 0; > } > - ret = 0; > } > mutex_unlock(&udc_lock); > > -- > 2.35.1 >