Message ID | 20230408194321.1647805-1-harshit.m.mogalapalli@oracle.com (mailing list archive) |
---|---|
State | Accepted |
Commit | a56ef25619e079bd7d744636cf18d054d1e91982 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,V2] net: wwan: iosm: Fix error handling path in ipc_pcie_probe() | expand |
On Sat, Apr 08, 2023 at 12:43:21PM -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. > > Add a set_mask_fail goto label which stands consistent with other goto > labels in this function.. > > Fixes: 035e3befc191 ("net: wwan: iosm: fix driver not working with INTEL_IOMMU disabled") > Reviewed-by: Simon Horman <simon.horman@corigine.com> > Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com> > --- > This is based on static analysis, only compile tested. > > v1 --> v2: Address comment by Simon Horman(better goto label name) Thanks! Reviewed-by: Simon Horman <simon.horman@corigine.com>
Hello: This patch was applied to netdev/net.git (main) by David S. Miller <davem@davemloft.net>: On Sat, 8 Apr 2023 12:43:21 -0700 you 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 > > [...] Here is the summary with links: - [net,V2] net: wwan: iosm: Fix error handling path in ipc_pcie_probe() https://git.kernel.org/netdev/net/c/a56ef25619e0 You are awesome, thank you!
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);