Consolidate pci_free_irq_vectors to a single place using "goto free_irq"
for simplify the code.
Signed-off-by: Dejin Zheng <[email protected]>
---
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
On 2/14/21 8:45 AM, Dejin Zheng wrote:
> Consolidate pci_free_irq_vectors to a single place using "goto free_irq"
> for simplify the code.
>
> Signed-off-by: Dejin Zheng <[email protected]>
> ---
> drivers/i2c/busses/i2c-designware-pcidrv.c | 22 ++++++++++------------
> 1 file changed, 10 insertions(+), 12 deletions(-)
>
Acked-by: Jarkko Nikula <[email protected]>
On Mon, Feb 15, 2021 at 11:36:27AM +0200, Jarkko Nikula wrote:
> On 2/14/21 8:45 AM, Dejin Zheng wrote:
> > Consolidate pci_free_irq_vectors to a single place using "goto free_irq"
> > for simplify the code.
> >
> > Signed-off-by: Dejin Zheng <[email protected]>
> > ---
> > drivers/i2c/busses/i2c-designware-pcidrv.c | 22 ++++++++++------------
> > 1 file changed, 10 insertions(+), 12 deletions(-)
> >
> Acked-by: Jarkko Nikula <[email protected]>
Jarkko, Thanks!
Dejin
On Sun, Feb 14, 2021 at 02:45:29PM +0800, Dejin Zheng wrote:
> Consolidate pci_free_irq_vectors to a single place using "goto free_irq"
> for simplify the code.
One nit below, after addressing:
Reviewed-by: Andy Shevchenko <[email protected]>
...
> +free_irq:
It's quite confusing name. I would expect to see here (with current proposal)
*free_irq() call, but no, I don't see a such.
Please, change to something like
err_pci_free_irq_vectors:
or alternatively
err_free_irq_vectors:
however I think first one is disambiguous.
> + pci_free_irq_vectors(pdev);
> + return r;
--
With Best Regards,
Andy Shevchenko
On Mon, Feb 15, 2021 at 03:20:40PM +0200, Andy Shevchenko wrote:
> On Sun, Feb 14, 2021 at 02:45:29PM +0800, Dejin Zheng wrote:
> > Consolidate pci_free_irq_vectors to a single place using "goto free_irq"
> > for simplify the code.
FYI, you may rather to introduce a pcim_alloc_irq_vectors() and drop all these
calls altogether.
Note to everybody: PCIm is not ideal, but this piece is being called whenever
pcim_enable_device() makes resources manageable. The problem here is the
naming.
--
With Best Regards,
Andy Shevchenko