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. Fixes: 035e3befc191 ("net: wwan: iosm: fix driver not working with INTEL_IOMMU disabled") Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@xxxxxxxxxx> --- This is based on static analysis, only compile tested. --- drivers/net/wwan/iosm/iosm_ipc_pcie.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/wwan/iosm/iosm_ipc_pcie.c b/drivers/net/wwan/iosm/iosm_ipc_pcie.c index 5bf5a93937c9..a6a6a0df1f7d 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 err_disable_pci; } ipc_pcie_config_aspm(ipc_pcie); @@ -308,7 +308,7 @@ static int ipc_pcie_probe(struct pci_dev *pci, ipc_pcie->suspend = 0; if (ipc_pcie_resources_request(ipc_pcie)) - goto resources_req_fail; + goto err_disable_pci; /* Establish the link to the imem layer. */ ipc_pcie->imem = ipc_imem_init(ipc_pcie, pci->device, @@ -322,7 +322,7 @@ static int ipc_pcie_probe(struct pci_dev *pci, imem_init_fail: ipc_pcie_resources_release(ipc_pcie); -resources_req_fail: +err_disable_pci: pci_disable_device(pci); pci_enable_fail: kfree(ipc_pcie); -- 2.38.1