2023-04-08 19:53:24

by Harshit Mogalapalli

[permalink] [raw]
Subject: [PATCH net V2] net: wwan: iosm: Fix error handling path in ipc_pcie_probe()

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 <[email protected]>
Signed-off-by: Harshit Mogalapalli <[email protected]>
---
This is based on static analysis, only compile tested.

v1 --> v2: Address comment by Simon Horman(better goto label name)
---
drivers/net/wwan/iosm/iosm_ipc_pcie.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

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);
--
2.38.1


2023-04-10 08:02:51

by Simon Horman

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

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 <[email protected]>
> Signed-off-by: Harshit Mogalapalli <[email protected]>
> ---
> 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 <[email protected]>

2023-04-12 10:04:09

by patchwork-bot+netdevbpf

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

Hello:

This patch was applied to netdev/net.git (main)
by David S. Miller <[email protected]>:

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!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html