Re: [PATCH net] net: wwan: iosm: Fix error handling path in ipc_pcie_probe()

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

 



On Sun, Apr 09, 2023 at 01:16:49AM +0530, Harshit Mogalapalli wrote:
> Hi Simon,
> 
> On 09/04/23 1:00 am, Simon Horman wrote:
> > On Sat, Apr 08, 2023 at 11:12:25PM +0530, Harshit Mogalapalli wrote:
> > > Hi Simon,
> > > 
> > > On 08/04/23 9:02 pm, Simon Horman wrote:
> > > > On Fri, Apr 07, 2023 at 11:56:07PM -0700, Harshit Mogalapalli wrote:
> > > > > Smatch reports:
> > > > > 	drivers/net/wwan/iosm/iosm_ipc_pcie.c:298 ipc_pcie_probe()
> > > > > 	warn: missing unwind goto?
> > > > > 
> > > > > When dma_set_mask fails it directly returns without disabling pci
> > > > > device and freeing ipc_pcie. Fix this my calling a correct goto label
> > > > > 
> > > > > As dma_set_mask returns either 0 or -EIO, we can use a goto label, as
> > > > > it finally returns -EIO.
> > > > > 
> > > > > Renamed the goto label as name of the label before this patch is not
> > > > > relevant after this patch.
> > > > 
> > > > nit: I agree that it's nice to name the labels after what they unwind,
> > > > rather than where they are called from. But now both schemes
> > > > are used in this function.
> > > 
> > > Thanks a lot for the review.
> > > I agree that the naming of the label is inconsistent, should we do something
> > > like below?
> > > 
> > > diff --git a/drivers/net/wwan/iosm/iosm_ipc_pcie.c
> > > b/drivers/net/wwan/iosm/iosm_ipc_pcie.c
> > > index 5bf5a93937c9..04517bd3325a 100644
> > > --- a/drivers/net/wwan/iosm/iosm_ipc_pcie.c
> > > +++ b/drivers/net/wwan/iosm/iosm_ipc_pcie.c
> > > @@ -295,7 +295,7 @@ static int ipc_pcie_probe(struct pci_dev *pci,
> > >          ret = dma_set_mask(ipc_pcie->dev, DMA_BIT_MASK(64));
> > >          if (ret) {
> > >                  dev_err(ipc_pcie->dev, "Could not set PCI DMA mask: %d",
> > > ret);
> > > -               return ret;
> > > +               goto set_mask_fail;
> > >          }
> > > 
> > >          ipc_pcie_config_aspm(ipc_pcie);
> > > @@ -323,6 +323,7 @@ static int ipc_pcie_probe(struct pci_dev *pci,
> > >   imem_init_fail:
> > >          ipc_pcie_resources_release(ipc_pcie);
> > >   resources_req_fail:
> > > +set_mask_fail:
> > >          pci_disable_device(pci);
> > >   pci_enable_fail:
> > >          kfree(ipc_pcie);
> > > 
> > > 
> > > 
> > > -- but resources_req_fail: has nothing in its block particularly.
> > 
> > I think this situation is common when one names the labels
> > after where they come from. So I'd say this is ok.
> > 
> Thanks I have a sent a V2 with this.
> 
> > An alternative would be to rename all three of labels after what they
> > unwind.
> 
> Other functions in this file are using similar labels. So may be we could
> with above diff(V2 patch).

Yes, I agree that makes sense.



[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux