RE: [patch V2 25/33] PCI/MSI: Provide post-enable dynamic allocation interfaces for MSI-X
From: Tian, Kevin
Date: Wed Nov 23 2022 - 21:58:49 EST
> From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Sent: Monday, November 21, 2022 10:38 PM
>
> +/**
> + * pci_msix_alloc_irq_at - Allocate an MSI-X interrupt after enabling MSI-X
> + * at a given MSI-X vector index or any free vector
> index
> + *
> + * @dev: PCI device to operate on
> + * @index: Index to allocate. If @index == MSI_ANY_INDEX this allocates
> + * the next free index in the MSI-X table
%MSI_ANY_INDEX as done in other places.
> +
> +/**
> + * pci_msix_free_irq - Free an interrupt on a PCI/MSIX interrupt domain
> + * which was allocated via pci_msix_alloc_irq_at()
> + *
> + * @dev: The PCI device to operate on
> + * @map: A struct msi_map describing the interrupt to free
> + * as returned from the allocation function.
> + */
Can this be used on preallocated descriptors? If not any guard required
or just treat it as a driver responsibility to not misuse?
> +void pci_msix_free_irq(struct pci_dev *dev, struct msi_map map)
> +{
> + if (WARN_ON_ONCE(map.index < 0 || map.virq <= 0))
map.virq cannot be negative.