[PATCH i2c-next] i2c: designware: Consolidate pci_free_irq_vectors to a single place

Dejin Zheng
2021-02-14T06:46:34Z

Consolidate pci_free_irq_vectors to a single place using "goto free_irq"
for simplify the code.

Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com>
---
drivers/i2c/busses/i2c-designware-pcidrv.c | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c b/drivers/i2c/busses/i2c-designware-pcidrv.c
index 55c83a7a24f3..f0c82e91870a 100644
--- a/drivers/i2c/busses/i2c-designware-pcidrv.c
+++ b/drivers/i2c/busses/i2c-designware-pcidrv.c
@@ -234,10 +234,8 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,

if (controller->setup) {
r = controller->setup(pdev, controller);
- if (r) {
- pci_free_irq_vectors(pdev);
- return r;
- }
+ if (r)
+ goto free_irq;
}

i2c_dw_adjust_bus_speed(dev);
@@ -246,10 +244,8 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,
i2c_dw_acpi_configure(&pdev->dev);

r = i2c_dw_validate_speed(dev);
- if (r) {
- pci_free_irq_vectors(pdev);
- return r;
- }
+ if (r)
+ goto free_irq;

i2c_dw_configure(dev);

@@ -269,10 +265,8 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,
adap->nr = controller->bus_num;

r = i2c_dw_probe(dev);
- if (r) {
- pci_free_irq_vectors(pdev);
- return r;
- }
+ if (r)
+ goto free_irq;

pm_runtime_set_autosuspend_delay(&pdev->dev, 1000);
pm_runtime_use_autosuspend(&pdev->dev);
@@ -280,6 +274,10 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,
pm_runtime_allow(&pdev->dev);

return 0;
+
+free_irq:
+ pci_free_irq_vectors(pdev);
+ return r;
}

static void i2c_dw_pci_remove(struct pci_dev *pdev)
--
2.25.0