2021-08-13 20:18:42

by Nathan Chancellor

[permalink] [raw]
Subject: [PATCH] staging: r8188eu: Remove unnecessary ret variable in rtw_drv_init()

ret is unnecessary as both error paths set the same error code so just
return that directly.

Suggested-by: Fabio M. De Francesco <[email protected]>
Signed-off-by: Nathan Chancellor <[email protected]>
---
drivers/staging/r8188eu/os_dep/usb_intf.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/r8188eu/os_dep/usb_intf.c b/drivers/staging/r8188eu/os_dep/usb_intf.c
index 667f41125a87..3e5f4b5eb0fc 100644
--- a/drivers/staging/r8188eu/os_dep/usb_intf.c
+++ b/drivers/staging/r8188eu/os_dep/usb_intf.c
@@ -705,22 +705,18 @@ static int rtw_drv_init(struct usb_interface *pusb_intf, const struct usb_device
{
struct adapter *if1 = NULL;
struct dvobj_priv *dvobj;
- int ret;

/* step 0. */
process_spec_devid(pdid);

/* Initialize dvobj_priv */
dvobj = usb_dvobj_init(pusb_intf);
- if (!dvobj) {
- ret = -ENODEV;
+ if (!dvobj)
goto err;
- }

if1 = rtw_usb_if1_init(dvobj, pusb_intf);
if (!if1) {
DBG_88E("rtw_init_primarystruct adapter Failed!\n");
- ret = -ENODEV;
goto free_dvobj;
}

@@ -734,7 +730,7 @@ static int rtw_drv_init(struct usb_interface *pusb_intf, const struct usb_device
free_dvobj:
usb_dvobj_deinit(pusb_intf);
err:
- return ret;
+ return -ENODEV;
}

/*

base-commit: 0bd35146642bdc56f1b87d75f047b1c92bd2bd39
--
2.33.0.rc2


2021-08-13 21:58:24

by Fabio M. De Francesco

[permalink] [raw]
Subject: Re: [PATCH] staging: r8188eu: Remove unnecessary ret variable in rtw_drv_init()

On Friday, August 13, 2021 10:14:18 PM CEST Nathan Chancellor wrote:
> ret is unnecessary as both error paths set the same error code so just
> return that directly.
>
> Suggested-by: Fabio M. De Francesco <[email protected]>
> Signed-off-by: Nathan Chancellor <[email protected]>

Much nicer!

Reviewed-by: Fabio M. De Francesco <[email protected]>

Thanks,

Fabio


2021-08-14 17:18:40

by Phillip Potter

[permalink] [raw]
Subject: Re: [PATCH] staging: r8188eu: Remove unnecessary ret variable in rtw_drv_init()

On Fri, 13 Aug 2021 at 21:14, Nathan Chancellor <[email protected]> wrote:
>
> ret is unnecessary as both error paths set the same error code so just
> return that directly.
>
> Suggested-by: Fabio M. De Francesco <[email protected]>
> Signed-off-by: Nathan Chancellor <[email protected]>
> ---
> drivers/staging/r8188eu/os_dep/usb_intf.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/staging/r8188eu/os_dep/usb_intf.c b/drivers/staging/r8188eu/os_dep/usb_intf.c
> index 667f41125a87..3e5f4b5eb0fc 100644
> --- a/drivers/staging/r8188eu/os_dep/usb_intf.c
> +++ b/drivers/staging/r8188eu/os_dep/usb_intf.c
> @@ -705,22 +705,18 @@ static int rtw_drv_init(struct usb_interface *pusb_intf, const struct usb_device
> {
> struct adapter *if1 = NULL;
> struct dvobj_priv *dvobj;
> - int ret;
>
> /* step 0. */
> process_spec_devid(pdid);
>
> /* Initialize dvobj_priv */
> dvobj = usb_dvobj_init(pusb_intf);
> - if (!dvobj) {
> - ret = -ENODEV;
> + if (!dvobj)
> goto err;
> - }
>
> if1 = rtw_usb_if1_init(dvobj, pusb_intf);
> if (!if1) {
> DBG_88E("rtw_init_primarystruct adapter Failed!\n");
> - ret = -ENODEV;
> goto free_dvobj;
> }
>
> @@ -734,7 +730,7 @@ static int rtw_drv_init(struct usb_interface *pusb_intf, const struct usb_device
> free_dvobj:
> usb_dvobj_deinit(pusb_intf);
> err:
> - return ret;
> + return -ENODEV;
> }
>
> /*
>
> base-commit: 0bd35146642bdc56f1b87d75f047b1c92bd2bd39
> --
> 2.33.0.rc2
>

Dear Nathan,

Thanks for this.

Acked-by: Phillip Potter <[email protected]>

Regards,
Phil

2021-08-16 09:08:19

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] staging: r8188eu: Remove unnecessary ret variable in rtw_drv_init()

To be honest, I prefered the original.

foo = alloc();
if (!foo) {
ret = -EWHATEVER;
goto free_last_thing;
}

I like this style of error handling because all the information is
there. You don't need to scroll down.

I don't really care about this specific patch at all. It's a small
thing. But we had someone come through who was sort of obsessed with
removing these sorts of variables. Just because you can remove a
variable doesn't necessarily make the code more readable.

If you're doing the work and maintaining the driver you get to choose
your own style to some extent. But I don't want to encourage people to
start sending these sort of patches more generally.

regards,
dan carpenter

2021-08-16 10:18:25

by Fabio M. De Francesco

[permalink] [raw]
Subject: Re: [PATCH] staging: r8188eu: Remove unnecessary ret variable in rtw_drv_init()

On Monday, August 16, 2021 11:05:00 AM CEST Dan Carpenter wrote:
> To be honest, I prefered the original.
>
> foo = alloc();
> if (!foo) {
> ret = -EWHATEVER;
> goto free_last_thing;
> }
>
> I like this style of error handling because all the information is
> there. You don't need to scroll down.
>
Thinking deeper about this style of error handling, I find that Dan is quite
right in preferring readability over removal of (technically unnecessary)
temporary variables. Perhaps the trade-off between brevity and readability
should (in general) favor the latter.

Furthermore, those temporary variables make the code easily adaptable/
extensible in cases where, in future revisions of the code, there will be more
different errors to handle.

However, it's mainly a matter of style, so...
>
> I don't really care about this specific patch at all. It's a small
> thing. But we had someone come through who was sort of obsessed with
> removing these sorts of variables. Just because you can remove a
> variable doesn't necessarily make the code more readable.
>
> If you're doing the work and maintaining the driver you get to choose
> your own style to some extent.
>
I agree: choose your own style (to some extent).

Thanks,

Fabio
>
> But I don't want to encourage people to
> start sending these sort of patches more generally.
>
> regards,
> dan carpenter