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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Tested-by: Scott Bruce <smbruce@xxxxxxxxx>

On Fri, Oct 29, 2021 at 10:25 AM Sanket Goswami <Sanket.Goswami@xxxxxxx> wrote:
>
> Handle error-exits in the amd_pmc_probe() so that the code duplication
> is reduced.
>
> Suggested-by: Hans de Goede <hdegoede@xxxxxxxxxx>
> Signed-off-by: Sanket Goswami <Sanket.Goswami@xxxxxxx>
> ---
> 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
>



[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux