diff mbox series

[v5,1/3] platform/x86: amd-pmc: Simplify error handling path

Message ID 20211029172304.2998-2-Sanket.Goswami@amd.com (mailing list archive)
State Changes Requested, archived
Headers show
Series Updates to amd-pmc driver | expand

Commit Message

Goswami, Sanket Oct. 29, 2021, 5:23 p.m. UTC
Handle error-exits in the amd_pmc_probe() so that the code duplication
is reduced.

Suggested-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sanket Goswami <Sanket.Goswami@amd.com>
---
Changes in v5:
- Use goto label incase of error-exit path.

Changes in v4:
- No change.

Changes in v3:
- No change.

Changes in v2:
- No change.

 drivers/platform/x86/amd-pmc.c | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

Comments

Scott Bruce Oct. 29, 2021, 11:27 p.m. UTC | #1
Tested-by: Scott Bruce <smbruce@gmail.com>

On Fri, Oct 29, 2021 at 10:25 AM Sanket Goswami <Sanket.Goswami@amd.com> wrote:
>
> Handle error-exits in the amd_pmc_probe() so that the code duplication
> is reduced.
>
> Suggested-by: Hans de Goede <hdegoede@redhat.com>
> Signed-off-by: Sanket Goswami <Sanket.Goswami@amd.com>
> ---
> Changes in v5:
> - Use goto label incase of error-exit path.
>
> Changes in v4:
> - No change.
>
> Changes in v3:
> - No change.
>
> Changes in v2:
> - No change.
>
>  drivers/platform/x86/amd-pmc.c | 24 ++++++++++++++----------
>  1 file changed, 14 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/platform/x86/amd-pmc.c b/drivers/platform/x86/amd-pmc.c
> index b7e50ed050a8..9af02860ed59 100644
> --- a/drivers/platform/x86/amd-pmc.c
> +++ b/drivers/platform/x86/amd-pmc.c
> @@ -533,22 +533,22 @@ static int amd_pmc_probe(struct platform_device *pdev)
>
>         rdev = pci_get_domain_bus_and_slot(0, 0, PCI_DEVFN(0, 0));
>         if (!rdev || !pci_match_id(pmc_pci_ids, rdev)) {
> -               pci_dev_put(rdev);
> -               return -ENODEV;
> +               err = -ENODEV;
> +               goto err_pci_dev_put;
>         }
>
>         dev->cpu_id = rdev->device;
>         err = pci_write_config_dword(rdev, AMD_PMC_SMU_INDEX_ADDRESS, AMD_PMC_BASE_ADDR_LO);
>         if (err) {
>                 dev_err(dev->dev, "error writing to 0x%x\n", AMD_PMC_SMU_INDEX_ADDRESS);
> -               pci_dev_put(rdev);
> -               return pcibios_err_to_errno(err);
> +               err = pcibios_err_to_errno(err);
> +               goto err_pci_dev_put;
>         }
>
>         err = pci_read_config_dword(rdev, AMD_PMC_SMU_INDEX_DATA, &val);
>         if (err) {
> -               pci_dev_put(rdev);
> -               return pcibios_err_to_errno(err);
> +               err = pcibios_err_to_errno(err);
> +               goto err_pci_dev_put;
>         }
>
>         base_addr_lo = val & AMD_PMC_BASE_ADDR_HI_MASK;
> @@ -556,14 +556,14 @@ static int amd_pmc_probe(struct platform_device *pdev)
>         err = pci_write_config_dword(rdev, AMD_PMC_SMU_INDEX_ADDRESS, AMD_PMC_BASE_ADDR_HI);
>         if (err) {
>                 dev_err(dev->dev, "error writing to 0x%x\n", AMD_PMC_SMU_INDEX_ADDRESS);
> -               pci_dev_put(rdev);
> -               return pcibios_err_to_errno(err);
> +               err = pcibios_err_to_errno(err);
> +               goto err_pci_dev_put;
>         }
>
>         err = pci_read_config_dword(rdev, AMD_PMC_SMU_INDEX_DATA, &val);
>         if (err) {
> -               pci_dev_put(rdev);
> -               return pcibios_err_to_errno(err);
> +               err = pcibios_err_to_errno(err);
> +               goto err_pci_dev_put;
>         }
>
>         base_addr_hi = val & AMD_PMC_BASE_ADDR_LO_MASK;
> @@ -594,6 +594,10 @@ static int amd_pmc_probe(struct platform_device *pdev)
>         platform_set_drvdata(pdev, dev);
>         amd_pmc_dbgfs_register(dev);
>         return 0;
> +
> +err_pci_dev_put:
> +       pci_dev_put(rdev);
> +       return err;
>  }
>
>  static int amd_pmc_remove(struct platform_device *pdev)
> --
> 2.25.1
>
diff mbox series

Patch

diff --git a/drivers/platform/x86/amd-pmc.c b/drivers/platform/x86/amd-pmc.c
index b7e50ed050a8..9af02860ed59 100644
--- a/drivers/platform/x86/amd-pmc.c
+++ b/drivers/platform/x86/amd-pmc.c
@@ -533,22 +533,22 @@  static int amd_pmc_probe(struct platform_device *pdev)
 
 	rdev = pci_get_domain_bus_and_slot(0, 0, PCI_DEVFN(0, 0));
 	if (!rdev || !pci_match_id(pmc_pci_ids, rdev)) {
-		pci_dev_put(rdev);
-		return -ENODEV;
+		err = -ENODEV;
+		goto err_pci_dev_put;
 	}
 
 	dev->cpu_id = rdev->device;
 	err = pci_write_config_dword(rdev, AMD_PMC_SMU_INDEX_ADDRESS, AMD_PMC_BASE_ADDR_LO);
 	if (err) {
 		dev_err(dev->dev, "error writing to 0x%x\n", AMD_PMC_SMU_INDEX_ADDRESS);
-		pci_dev_put(rdev);
-		return pcibios_err_to_errno(err);
+		err = pcibios_err_to_errno(err);
+		goto err_pci_dev_put;
 	}
 
 	err = pci_read_config_dword(rdev, AMD_PMC_SMU_INDEX_DATA, &val);
 	if (err) {
-		pci_dev_put(rdev);
-		return pcibios_err_to_errno(err);
+		err = pcibios_err_to_errno(err);
+		goto err_pci_dev_put;
 	}
 
 	base_addr_lo = val & AMD_PMC_BASE_ADDR_HI_MASK;
@@ -556,14 +556,14 @@  static int amd_pmc_probe(struct platform_device *pdev)
 	err = pci_write_config_dword(rdev, AMD_PMC_SMU_INDEX_ADDRESS, AMD_PMC_BASE_ADDR_HI);
 	if (err) {
 		dev_err(dev->dev, "error writing to 0x%x\n", AMD_PMC_SMU_INDEX_ADDRESS);
-		pci_dev_put(rdev);
-		return pcibios_err_to_errno(err);
+		err = pcibios_err_to_errno(err);
+		goto err_pci_dev_put;
 	}
 
 	err = pci_read_config_dword(rdev, AMD_PMC_SMU_INDEX_DATA, &val);
 	if (err) {
-		pci_dev_put(rdev);
-		return pcibios_err_to_errno(err);
+		err = pcibios_err_to_errno(err);
+		goto err_pci_dev_put;
 	}
 
 	base_addr_hi = val & AMD_PMC_BASE_ADDR_LO_MASK;
@@ -594,6 +594,10 @@  static int amd_pmc_probe(struct platform_device *pdev)
 	platform_set_drvdata(pdev, dev);
 	amd_pmc_dbgfs_register(dev);
 	return 0;
+
+err_pci_dev_put:
+	pci_dev_put(rdev);
+	return err;
 }
 
 static int amd_pmc_remove(struct platform_device *pdev)