Message ID | 20220504135840.232209-1-colin.i.king@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | d7c90d9f9a5b6a85c09d37c5616d880d849a0c8b |
Headers | show |
Series | [next] USB: gadget: Fix return of -EBUSY | expand |
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@gmail.com> > --- Acked-by: Alan Stern <stern@rowland.harvard.edu> 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 >
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);
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@gmail.com> --- drivers/usb/gadget/udc/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)