Re: [PATCH v2] usb: dwc3: host: remove dead code in dwc3_host_get_irq()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Mar 23, 2023 at 02:48:56PM +0100, Oliver Neukum wrote:
> On 23.03.23 12:13, Dan Carpenter wrote:
> 
> > > > > v1->v2: remove redundant goto
> > > > >    drivers/usb/dwc3/host.c | 4 ----
> > > > >    1 file changed, 4 deletions(-)
> > > > > 
> > > > > diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c
> > > > > index f6f13e7f1ba1..ca1e8294e835 100644
> > > > > --- a/drivers/usb/dwc3/host.c
> > > > > +++ b/drivers/usb/dwc3/host.c
> > > > > @@ -54,12 +54,8 @@ static int dwc3_host_get_irq(struct dwc3 *dwc)
> > > > >    	irq = platform_get_irq(dwc3_pdev, 0);
> > > > >    	if (irq > 0) {
> > > > >    		dwc3_host_fill_xhci_irq_res(dwc, irq, NULL);
> > > > > -		goto out;
> > > > >    	}
> > > > 
> > > >      Now drop {} please. :-)
> > > 
> > > Well, no, please drop the whole patch.
> > > If platform_get_irq() returns -EPROBE_DEFER you now give that
> > > as a return value.
> > > 
> > > This tiny bit of optimization is not worth changing semantics.
> > 
> > The v2 patch doesn't change the semantics.  Mine did though...
> 
> Now I may be dense, but let's look at the current code:
> 
>         irq = platform_get_irq(dwc3_pdev, 0);
> 
> assuming irq = -EPROBE_DEFER
> 
>         if (irq > 0) {
> 
> not taken
>                 dwc3_host_fill_xhci_irq_res(dwc, irq, NULL);
>                 goto out;
>         }
> 
>         if (!irq)
> 
> irq != 0

You've reversed this if statement in your head.  It says that if
platform_get_irq() returns zero, then return -EINVAL.

The problem that Mingxuan is trying to address is that checking for zero
is dead code and sometimes represents a bug when people check for zero
instead of negatives.

>                 irq = -EINVAL;
> 
> out:
>         return irq;
> 
> returning -EINVAL

We do *want* it to return -EPROBE_DEFER as the current code does.

regards,
dan carpenter




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux