drm/xe/irq: Don't call pci_free_irq_vectors
authorMichał Winiarski <michal.winiarski@intel.com>
Wed, 29 Nov 2023 21:44:59 +0000 (22:44 +0100)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 21 Dec 2023 16:45:09 +0000 (11:45 -0500)
For devres managed devices, pci_alloc_irq_vectors is also managed (see
pci_setup_msi_context for reference).
PCI device used by Xe is devres managed (it was enabled with
pcim_enable_device), which means that calls to pci_free_irq_vectors are
redundant and can be safely removed.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://lore.kernel.org/r/20231129214509.1174116-4-michal.winiarski@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_irq.c

index 25ba5167c1b9244848e7299d8607100adede7b86..d1f5ba4bb745a31fe5db0db2987857de53fa873f 100644 (file)
@@ -585,7 +585,6 @@ static void irq_uninstall(struct drm_device *drm, void *arg)
 
        irq = pci_irq_vector(pdev, 0);
        free_irq(irq, xe);
-       pci_free_irq_vectors(pdev);
 }
 
 int xe_irq_install(struct xe_device *xe)
@@ -612,7 +611,7 @@ int xe_irq_install(struct xe_device *xe)
        err = request_irq(irq, irq_handler, IRQF_SHARED, DRIVER_NAME, xe);
        if (err < 0) {
                drm_err(&xe->drm, "Failed to request MSI/MSIX IRQ %d\n", err);
-               goto free_pci_irq_vectors;
+               return err;
        }
 
        xe->irq.enabled = true;
@@ -627,8 +626,6 @@ int xe_irq_install(struct xe_device *xe)
 
 free_irq_handler:
        free_irq(irq, xe);
-free_pci_irq_vectors:
-       pci_free_irq_vectors(pdev);
 
        return err;
 }