Re: [patch 02/39] iommu/vt-d: Remove bogus check for multi MSI-X

Ashok Raj
2022-11-16T17:40:11Z

On Wed, Nov 16, 2022 at 06:02:30PM +0100, Thomas Gleixner wrote:
> On Wed, Nov 16 2022 at 07:52, Ashok Raj wrote:
> > On Fri, Nov 11, 2022 at 02:54:17PM +0100, Thomas Gleixner wrote:
> >> PCI/Multi-MSI is MSI specific and not supported for MSI-X.
> >>
> >> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> >> ---
> >> drivers/iommu/intel/irq_remapping.c | 3 +--
> >> 1 file changed, 1 insertion(+), 2 deletions(-)
> >>
> >> --- a/drivers/iommu/intel/irq_remapping.c
> >> +++ b/drivers/iommu/intel/irq_remapping.c
> >> @@ -1334,8 +1334,7 @@ static int intel_irq_remapping_alloc(str
> >>
> >> if (!info || !iommu)
> >> return -EINVAL;
> >> - if (nr_irqs > 1 && info->type != X86_IRQ_ALLOC_TYPE_PCI_MSI &&
> >> - info->type != X86_IRQ_ALLOC_TYPE_PCI_MSIX)
> >> + if (nr_irqs > 1 && info->type != X86_IRQ_ALLOC_TYPE_PCI_MSI)
> >> return -EINVAL;
> >>
> >> /*
> >>
> >
> > This check is only making sure that when multi-msi is requested that the
> > type has to be either MSI/MSIX.
>
> MSI-X does not support multi vector allocations on a single entry.
>
> > Wouldn't this change return -EINVAL when type = MSIX?
>
> Rightfully so. MSIX vectors are allocated one by one. Has been that way
> forever.
>

I thought why block multi-vector allocation on MSIX, but if there is no
use case makes perfect sense.

Thanks for the clarification.

Reviewed-by: Ashok Raj <ashok.raj@intel.com>