Re: [Outreachy kernel] [PATCH 3/5] staging: rtl8712: Remove unnecessary else after return

From: SIMRAN SINGHAL
Date: Tue Feb 28 2017 - 15:13:39 EST


On Tue, Feb 28, 2017 at 2:49 AM, Julia Lawall <julia.lawall@xxxxxxx> wrote:
>
>
> On Mon, 27 Feb 2017, simran singhal wrote:
>
>> This patch fixes the checkpatch warning that else is not generally
>> useful after a break or return.
>>
>> This was done using Coccinelle:
>> @@
>> expression e2;
>> statement s1;
>> @@
>> if(e2) { ... return ...; }
>> -else
>> s1
>
> One might be surprised that the following code was detected using the
> above semantic patch, because in the code below there is no return in the
> if branches. Actually, as a special feature, when one has an if branch
> that ends in return, Coccinelle will skip through any gotos and see if the
> return is matched afterward. Indeed it is a common pattern to have
>
> if (...) {
> foo(x);
> bar(y);
> return -ENOMEM;
> }
>
> But the code can also be cut up as eg
>
> if (...) {
> ret = -ENOMEM;
> goto out;
> }
> ...
> out:
> foo(x);
> bar(y);
> return ret;
>
> To avoid having to write multiple patterns for these cases, Coccinelle
> will just jump through the return in the second case, allowing the same
> pattern to match both of them.
>
Julia, Thanks for explaination. Its really helpful.

But I think there is no problem in removing else.
Because it will execute this

padapter->dvobjpriv.inirp_init(padapter);

when if condition will not satisfy.

> julia
>
>>
>> Signed-off-by: simran singhal <singhalsimran0@xxxxxxxxx>
>> ---
>> drivers/staging/rtl8712/os_intfs.c | 3 +--
>> 1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c
>> index 8836b31..3062167 100644
>> --- a/drivers/staging/rtl8712/os_intfs.c
>> +++ b/drivers/staging/rtl8712/os_intfs.c
>> @@ -411,8 +411,7 @@ static int netdev_open(struct net_device *pnetdev)
>> goto netdev_open_error;
>> if (!padapter->dvobjpriv.inirp_init)
>> goto netdev_open_error;
>> - else
>> - padapter->dvobjpriv.inirp_init(padapter);
>> + padapter->dvobjpriv.inirp_init(padapter);
>> r8712_set_ps_mode(padapter, padapter->registrypriv.power_mgnt,
>> padapter->registrypriv.smart_ps);
>> }
>> --
>> 2.7.4
>>
>> --
>> You received this message because you are subscribed to the Google Groups "outreachy-kernel" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to outreachy-kernel+unsubscribe@xxxxxxxxxxxxxxxxx
>> To post to this group, send email to outreachy-kernel@xxxxxxxxxxxxxxxxx
>> To view this discussion on the web visit https://groups.google.com/d/msgid/outreachy-kernel/1488219268-3006-3-git-send-email-singhalsimran0%40gmail.com.
>> For more options, visit https://groups.google.com/d/optout.
>>