Message ID | 20241106175102.219923-5-ajones@ventanamicro.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | iommu/riscv: Add platform msi support | expand |
Context | Check | Description |
---|---|---|
conchuod/vmtest-fixes-PR | fail | merge-conflict |
On Wed, Nov 6, 2024 at 9:51 AM Andrew Jones <ajones@ventanamicro.com> wrote: > > riscv_iommu_pci_probe() calls pci_alloc_irq_vectors() which > states pci_free_irq_vectors() must be called on cleanup. > > Fixes: 68682e9578fb ("iommu/riscv: Add RISC-V IOMMU PCIe device driver") > Signed-off-by: Andrew Jones <ajones@ventanamicro.com> > --- > drivers/iommu/riscv/iommu-pci.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/iommu/riscv/iommu-pci.c b/drivers/iommu/riscv/iommu-pci.c > index c7a89143014c..25a27e627a0e 100644 > --- a/drivers/iommu/riscv/iommu-pci.c > +++ b/drivers/iommu/riscv/iommu-pci.c > @@ -99,6 +99,7 @@ static void riscv_iommu_pci_remove(struct pci_dev *pdev) > struct riscv_iommu_device *iommu = dev_get_drvdata(&pdev->dev); > > riscv_iommu_remove(iommu); > + pci_free_irq_vectors(pdev); > } > > static const struct pci_device_id riscv_iommu_pci_tbl[] = { > -- > 2.47.0 > Andrew, interrupt release call pci_free_irq_vectors() should already be called by device managed resources framework, with unwind action callback pcim_msi_release(). Callback is registered during vectors allocation: pci_alloc_irq_vectors_affinity() __pci_enable_msix_range() pci_setup_msi_context() pcim_setup_msi_release() This driver enables device resources management with initial call to pcim_enable_device(). Are there any conditions / testing sequence the release function is not called? Thanks, - Tomasz
diff --git a/drivers/iommu/riscv/iommu-pci.c b/drivers/iommu/riscv/iommu-pci.c index c7a89143014c..25a27e627a0e 100644 --- a/drivers/iommu/riscv/iommu-pci.c +++ b/drivers/iommu/riscv/iommu-pci.c @@ -99,6 +99,7 @@ static void riscv_iommu_pci_remove(struct pci_dev *pdev) struct riscv_iommu_device *iommu = dev_get_drvdata(&pdev->dev); riscv_iommu_remove(iommu); + pci_free_irq_vectors(pdev); } static const struct pci_device_id riscv_iommu_pci_tbl[] = {
riscv_iommu_pci_probe() calls pci_alloc_irq_vectors() which states pci_free_irq_vectors() must be called on cleanup. Fixes: 68682e9578fb ("iommu/riscv: Add RISC-V IOMMU PCIe device driver") Signed-off-by: Andrew Jones <ajones@ventanamicro.com> --- drivers/iommu/riscv/iommu-pci.c | 1 + 1 file changed, 1 insertion(+)