[PATCH v3] usb: core: remove unnecessary goto in usb_create_newid_files()

Mark Adamenko posted 1 patch 1 month ago
drivers/usb/core/driver.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH v3] usb: core: remove unnecessary goto in usb_create_newid_files()
Posted by Mark Adamenko 1 month ago
The goto to 'exit' only returns the already initialized variable
'error', which would be 0. At that point it could not yet be anything
else. Replacing with an early return 0 removes the
need for the label entirely.

Signed-off-by: Mark Adamenko <marusik.adamenko@gmail.com>
---
v3: fix missing return statement at end of function
---
 drivers/usb/core/driver.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index 2574e65bc640..752ff84a8dc1 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -186,7 +186,7 @@ static int usb_create_newid_files(struct usb_driver *usb_drv)
 	int error = 0;
 
 	if (usb_drv->no_dynamic_id)
-		goto exit;
+		return 0;
 
 	if (usb_drv->probe != NULL) {
 		error = driver_create_file(&usb_drv->driver,
@@ -199,7 +199,7 @@ static int usb_create_newid_files(struct usb_driver *usb_drv)
 						&driver_attr_new_id);
 		}
 	}
-exit:
+
 	return error;
 }
 
-- 
2.53.0
Re: [PATCH v3] usb: core: remove unnecessary goto in usb_create_newid_files()
Posted by Greg KH 1 month ago
On Wed, Mar 04, 2026 at 07:58:12AM -0800, Mark Adamenko wrote:
> The goto to 'exit' only returns the already initialized variable
> 'error', which would be 0. At that point it could not yet be anything
> else. Replacing with an early return 0 removes the
> need for the label entirely.

Odd text wrapping :(

> 
> Signed-off-by: Mark Adamenko <marusik.adamenko@gmail.com>
> ---
> v3: fix missing return statement at end of function
> ---

You forgot the other versions listed here :(

>  drivers/usb/core/driver.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

But first, why?  There's no real need for this change, why make it at
all?  It follows the "standard" way of jumping to the end of the
function to exit.  What tool asked you to make this change?

thanks,

greg k-h
Re: [PATCH v3] usb: core: remove unnecessary goto in usb_create_newid_files()
Posted by Mark Adamenko 1 month ago
Thanks for responding,
I wasn't suggested by any tool. I was advised that if I want to become a 
contributor, I should start by finding something small, so I came across 
this file and found the goto. I understand it's not a big change, but 
the kernel style guide says:
"The goto statement comes in handy when a function exits from multiple 
locations and some common work such as cleanup has to be done. If there 
is no cleanup needed then just return directly."
The original function only exits at the exit case and at the end of the 
function, without extra cleanup.

On 3/4/26 08:11, Greg KH wrote:
> On Wed, Mar 04, 2026 at 07:58:12AM -0800, Mark Adamenko wrote:
>> The goto to 'exit' only returns the already initialized variable
>> 'error', which would be 0. At that point it could not yet be anything
>> else. Replacing with an early return 0 removes the
>> need for the label entirely.
> 
> Odd text wrapping :(
> 
>>
>> Signed-off-by: Mark Adamenko <marusik.adamenko@gmail.com>
>> ---
>> v3: fix missing return statement at end of function
>> ---
> 
> You forgot the other versions listed here :(
> 
>>   drivers/usb/core/driver.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> But first, why?  There's no real need for this change, why make it at
> all?  It follows the "standard" way of jumping to the end of the
> function to exit.  What tool asked you to make this change?
> 
> thanks,
> 
> greg k-h
Re: [PATCH v3] usb: core: remove unnecessary goto in usb_create_newid_files()
Posted by Greg KH 1 month ago
On Wed, Mar 04, 2026 at 09:35:42AM -0800, Mark Adamenko wrote:
> Thanks for responding,
> I wasn't suggested by any tool. I was advised that if I want to become a
> contributor, I should start by finding something small,

I recommend starting in drivers/staging/ and not causing unnecessary
churn in other parts of the kernel, as you learn the development
process.  That's what that part of the kernel is for.

Also, please don't top-post :)

thanks,

greg k-h