All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] usb: common: usb-otg-fsm: drop unreachable code in otg_statemachine()
@ 2022-02-08 20:32 Sergey Shtylyov
  2022-02-09  5:35 ` Greg Kroah-Hartman
  0 siblings, 1 reply; 4+ messages in thread
From: Sergey Shtylyov @ 2022-02-08 20:32 UTC (permalink / raw)
  To: Peter Chen, Greg Kroah-Hartman, linux-usb

The *switch* statement in otg_statemachine() does handle all possible OTG
states explicitly, so the *default* label is unreachable.

Found by Linux Verification Center (linuxtesting.org) with the SVACE static
analysis tool.

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>

---
This patch is against the 'usb-next' branch of Greg KH's 'usb.git' repo.
Peter Chen's 'usb.git' repo seems outdated, so I chose to ignore it...

 drivers/usb/common/usb-otg-fsm.c |    2 --
 1 file changed, 2 deletions(-)

Index: usb/drivers/usb/common/usb-otg-fsm.c
===================================================================
--- usb.orig/drivers/usb/common/usb-otg-fsm.c
+++ usb/drivers/usb/common/usb-otg-fsm.c
@@ -440,8 +440,6 @@ int otg_statemachine(struct otg_fsm *fsm
 		if (fsm->id || fsm->a_bus_drop || fsm->a_clr_err)
 			otg_set_state(fsm, OTG_STATE_A_WAIT_VFALL);
 		break;
-	default:
-		break;
 	}
 	mutex_unlock(&fsm->lock);
 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] usb: common: usb-otg-fsm: drop unreachable code in otg_statemachine()
  2022-02-08 20:32 [PATCH] usb: common: usb-otg-fsm: drop unreachable code in otg_statemachine() Sergey Shtylyov
@ 2022-02-09  5:35 ` Greg Kroah-Hartman
  2022-02-09 10:33   ` Sergey Shtylyov
  0 siblings, 1 reply; 4+ messages in thread
From: Greg Kroah-Hartman @ 2022-02-09  5:35 UTC (permalink / raw)
  To: Sergey Shtylyov; +Cc: Peter Chen, linux-usb

On Tue, Feb 08, 2022 at 11:32:28PM +0300, Sergey Shtylyov wrote:
> The *switch* statement in otg_statemachine() does handle all possible OTG
> states explicitly, so the *default* label is unreachable.
> 
> Found by Linux Verification Center (linuxtesting.org) with the SVACE static
> analysis tool.
> 
> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
> 
> ---
> This patch is against the 'usb-next' branch of Greg KH's 'usb.git' repo.
> Peter Chen's 'usb.git' repo seems outdated, so I chose to ignore it...
> 
>  drivers/usb/common/usb-otg-fsm.c |    2 --
>  1 file changed, 2 deletions(-)
> 
> Index: usb/drivers/usb/common/usb-otg-fsm.c
> ===================================================================
> --- usb.orig/drivers/usb/common/usb-otg-fsm.c
> +++ usb/drivers/usb/common/usb-otg-fsm.c
> @@ -440,8 +440,6 @@ int otg_statemachine(struct otg_fsm *fsm
>  		if (fsm->id || fsm->a_bus_drop || fsm->a_clr_err)
>  			otg_set_state(fsm, OTG_STATE_A_WAIT_VFALL);
>  		break;
> -	default:
> -		break;
>  	}
>  	mutex_unlock(&fsm->lock);
>  

There is nothing wrong with leaving lines like this in the code to
handle any potential bugs.

Why do you think it needs to be removed?  What benefit does this patch
have?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] usb: common: usb-otg-fsm: drop unreachable code in otg_statemachine()
  2022-02-09  5:35 ` Greg Kroah-Hartman
@ 2022-02-09 10:33   ` Sergey Shtylyov
  2022-02-09 11:33     ` Greg Kroah-Hartman
  0 siblings, 1 reply; 4+ messages in thread
From: Sergey Shtylyov @ 2022-02-09 10:33 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: Peter Chen, linux-usb

On 2/9/22 8:35 AM, Greg Kroah-Hartman wrote:

>> The *switch* statement in otg_statemachine() does handle all possible OTG
>> states explicitly, so the *default* label is unreachable.
>>
>> Found by Linux Verification Center (linuxtesting.org) with the SVACE static
>> analysis tool.
>>
>> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
>>
>> ---
>> This patch is against the 'usb-next' branch of Greg KH's 'usb.git' repo.
>> Peter Chen's 'usb.git' repo seems outdated, so I chose to ignore it...
>>
>>  drivers/usb/common/usb-otg-fsm.c |    2 --
>>  1 file changed, 2 deletions(-)
>>
>> Index: usb/drivers/usb/common/usb-otg-fsm.c
>> ===================================================================
>> --- usb.orig/drivers/usb/common/usb-otg-fsm.c
>> +++ usb/drivers/usb/common/usb-otg-fsm.c
>> @@ -440,8 +440,6 @@ int otg_statemachine(struct otg_fsm *fsm
>>  		if (fsm->id || fsm->a_bus_drop || fsm->a_clr_err)
>>  			otg_set_state(fsm, OTG_STATE_A_WAIT_VFALL);
>>  		break;
>> -	default:
>> -		break;
>>  	}
>>  	mutex_unlock(&fsm->lock);
>>  
> 
> There is nothing wrong with leaving lines like this in the code to
> handle any potential bugs.
> Why do you think it needs to be removed?  What benefit does this patch
> have?

   These lines as they are bring no value at all.
   Note that (as I said)  all the values of 'enum usb_otg_state' are
already handled with explicit *case* label...

MBR, Sergey

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] usb: common: usb-otg-fsm: drop unreachable code in otg_statemachine()
  2022-02-09 10:33   ` Sergey Shtylyov
@ 2022-02-09 11:33     ` Greg Kroah-Hartman
  0 siblings, 0 replies; 4+ messages in thread
From: Greg Kroah-Hartman @ 2022-02-09 11:33 UTC (permalink / raw)
  To: Sergey Shtylyov; +Cc: Peter Chen, linux-usb

On Wed, Feb 09, 2022 at 01:33:53PM +0300, Sergey Shtylyov wrote:
> On 2/9/22 8:35 AM, Greg Kroah-Hartman wrote:
> 
> >> The *switch* statement in otg_statemachine() does handle all possible OTG
> >> states explicitly, so the *default* label is unreachable.
> >>
> >> Found by Linux Verification Center (linuxtesting.org) with the SVACE static
> >> analysis tool.
> >>
> >> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
> >>
> >> ---
> >> This patch is against the 'usb-next' branch of Greg KH's 'usb.git' repo.
> >> Peter Chen's 'usb.git' repo seems outdated, so I chose to ignore it...
> >>
> >>  drivers/usb/common/usb-otg-fsm.c |    2 --
> >>  1 file changed, 2 deletions(-)
> >>
> >> Index: usb/drivers/usb/common/usb-otg-fsm.c
> >> ===================================================================
> >> --- usb.orig/drivers/usb/common/usb-otg-fsm.c
> >> +++ usb/drivers/usb/common/usb-otg-fsm.c
> >> @@ -440,8 +440,6 @@ int otg_statemachine(struct otg_fsm *fsm
> >>  		if (fsm->id || fsm->a_bus_drop || fsm->a_clr_err)
> >>  			otg_set_state(fsm, OTG_STATE_A_WAIT_VFALL);
> >>  		break;
> >> -	default:
> >> -		break;
> >>  	}
> >>  	mutex_unlock(&fsm->lock);
> >>  
> > 
> > There is nothing wrong with leaving lines like this in the code to
> > handle any potential bugs.
> > Why do you think it needs to be removed?  What benefit does this patch
> > have?
> 
>    These lines as they are bring no value at all.
>    Note that (as I said)  all the values of 'enum usb_otg_state' are
> already handled with explicit *case* label...

And so now you will trigger the checkers that ask "you do not have a
default: line for your case statement!"

This is safer as is, please do not "clean up" things that are not
actually a problem.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-02-09 12:03 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-08 20:32 [PATCH] usb: common: usb-otg-fsm: drop unreachable code in otg_statemachine() Sergey Shtylyov
2022-02-09  5:35 ` Greg Kroah-Hartman
2022-02-09 10:33   ` Sergey Shtylyov
2022-02-09 11:33     ` Greg Kroah-Hartman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.