Re: p54: drop device reference count if fails to enable device

From: Christian Lamparter
Date: Fri Apr 19 2019 - 14:21:23 EST


Subject should include a "[PATCH]" as per:
https://www.kernel.org/doc/html/v4.15/process/submitting-patches.html#include-patch-in-the-subject

Nevertheless, patchwork picked it up.... so, you are probably fine.

https://patchwork.kernel.org/patch/10905039/

On Wednesday, April 17, 2019 11:41:23 AM CEST Pan Bian wrote:
> The function p54p_probe takes an extra reference count of the PCI
> device. However, the extra reference count is not dropped when it fails
> to enable the PCI device. This patch fixes the bug.
>
> Signed-off-by: Pan Bian <bianpan2016@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Acked-by: Christian Lamparter <chunkeey@xxxxxxxxx>

> ---
> drivers/net/wireless/intersil/p54/p54pci.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/intersil/p54/p54pci.c b/drivers/net/wireless/intersil/p54/p54pci.c
> index 27a4906..57ad564 100644
> --- a/drivers/net/wireless/intersil/p54/p54pci.c
> +++ b/drivers/net/wireless/intersil/p54/p54pci.c
> @@ -554,7 +554,7 @@ static int p54p_probe(struct pci_dev *pdev,
> err = pci_enable_device(pdev);
> if (err) {
> dev_err(&pdev->dev, "Cannot enable new PCI device\n");
> - return err;
> + goto err_put;
> }
>
> mem_addr = pci_resource_start(pdev, 0);
> @@ -639,6 +639,7 @@ static int p54p_probe(struct pci_dev *pdev,
> pci_release_regions(pdev);
> err_disable_dev:
> pci_disable_device(pdev);
> +err_put:
> pci_dev_put(pdev);
> return err;
> }
>