[PATCH] spi: dw-pci: remove redundant pci_free_irq_vectors() calls

From: Felix Gu

Date: Fri May 29 2026 - 15:08:47 EST


The driver uses pcim_enable_device(), so IRQ vectors are automatically
freed by devres on driver detach. The explicit pci_free_irq_vectors()
calls in the probe error path and remove function are redundant.

Drop them and the now-unused error label.

Signed-off-by: Felix Gu <ustc.gu@xxxxxxxxx>
---
drivers/spi/spi-dw-pci.c | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/drivers/spi/spi-dw-pci.c b/drivers/spi/spi-dw-pci.c
index 7f002d5e5b88..bfb874f96a26 100644
--- a/drivers/spi/spi-dw-pci.c
+++ b/drivers/spi/spi-dw-pci.c
@@ -120,16 +120,15 @@ static int dw_spi_pci_probe(struct pci_dev *pdev, const struct pci_device_id *en
if (desc->setup) {
ret = desc->setup(dws);
if (ret)
- goto err_free_irq_vectors;
+ return ret;
}
} else {
- ret = -ENODEV;
- goto err_free_irq_vectors;
+ return -ENODEV;
}

ret = dw_spi_add_controller(&pdev->dev, dws);
if (ret)
- goto err_free_irq_vectors;
+ return ret;

/* PCI hook and SPI hook use the same drv data */
pci_set_drvdata(pdev, dws);
@@ -143,10 +142,6 @@ static int dw_spi_pci_probe(struct pci_dev *pdev, const struct pci_device_id *en
pm_runtime_allow(&pdev->dev);

return 0;
-
-err_free_irq_vectors:
- pci_free_irq_vectors(pdev);
- return ret;
}

static void dw_spi_pci_remove(struct pci_dev *pdev)
@@ -157,7 +152,6 @@ static void dw_spi_pci_remove(struct pci_dev *pdev)
pm_runtime_get_noresume(&pdev->dev);

dw_spi_remove_controller(dws);
- pci_free_irq_vectors(pdev);
}

#ifdef CONFIG_PM_SLEEP

---
base-commit: f7af91adc230aa99e23330ecf85bc9badd9780ad
change-id: 20260530-dw-pci-d756a48bf3a2

Best regards,
--
Felix Gu <ustc.gu@xxxxxxxxx>