2020-05-22 21:53:28

by Qiushi Wu

[permalink] [raw]
Subject: [PATCH] net: sun: fix missing release regions in cas_init_one().

From: Qiushi Wu <[email protected]>

In cas_init_one(), "pdev" is requested by "pci_request_regions", but it
was not released after a call of the function “pci_write_config_byte”
failed. Thus replace the jump target “err_write_cacheline” by
"err_out_free_res".

Fixes: 1f26dac32057 ("[NET]: Add Sun Cassini driver.")
Signed-off-by: Qiushi Wu <[email protected]>
---
drivers/net/ethernet/sun/cassini.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/sun/cassini.c b/drivers/net/ethernet/sun/cassini.c
index e6d1aa882fa5..f1c8615ab6f0 100644
--- a/drivers/net/ethernet/sun/cassini.c
+++ b/drivers/net/ethernet/sun/cassini.c
@@ -4963,7 +4963,7 @@ static int cas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
cas_cacheline_size)) {
dev_err(&pdev->dev, "Could not set PCI cache "
"line size\n");
- goto err_write_cacheline;
+ goto err_out_free_res;
}
}
#endif
@@ -5136,7 +5136,6 @@ static int cas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
err_out_free_res:
pci_release_regions(pdev);

-err_write_cacheline:
/* Try to restore it in case the error occurred after we
* set it.
*/
--
2.17.1


2020-05-22 23:25:34

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] net: sun: fix missing release regions in cas_init_one().

From: [email protected]
Date: Fri, 22 May 2020 16:50:27 -0500

> From: Qiushi Wu <[email protected]>
>
> In cas_init_one(), "pdev" is requested by "pci_request_regions", but it
> was not released after a call of the function $B!H(Bpci_write_config_byte$B!I(B
> failed. Thus replace the jump target $B!H(Berr_write_cacheline$B!I(B by
> "err_out_free_res".
>
> Fixes: 1f26dac32057 ("[NET]: Add Sun Cassini driver.")
> Signed-off-by: Qiushi Wu <[email protected]>

Applied, thank you.