PCI/Multi-MSI is MSI specific and not supported for MSI-X.
Signed-off-by: Thomas Gleixner <[email protected]>
---
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;
/*
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 <[email protected]>
> ---
> 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.
Wouldn't this change return -EINVAL when type = MSIX?
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 <[email protected]>
> >> ---
> >> 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 <[email protected]>
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 <[email protected]>
>> ---
>> 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.
Thanks,
tglx
The following commit has been merged into the irq/core branch of tip:
Commit-ID: 527f378c42eaac0b48a8c6ff16da99a6177ff9e3
Gitweb: https://git.kernel.org/tip/527f378c42eaac0b48a8c6ff16da99a6177ff9e3
Author: Thomas Gleixner <[email protected]>
AuthorDate: Fri, 11 Nov 2022 14:54:17 +01:00
Committer: Thomas Gleixner <[email protected]>
CommitterDate: Thu, 17 Nov 2022 15:15:18 +01:00
iommu/vt-d: Remove bogus check for multi MSI-X
PCI/Multi-MSI is MSI specific and not supported for MSI-X.
Signed-off-by: Thomas Gleixner <[email protected]>
Reviewed-by: Ashok Raj <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
---
drivers/iommu/intel/irq_remapping.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/iommu/intel/irq_remapping.c b/drivers/iommu/intel/irq_remapping.c
index 5962bb5..0b80a27 100644
--- a/drivers/iommu/intel/irq_remapping.c
+++ b/drivers/iommu/intel/irq_remapping.c
@@ -1334,8 +1334,7 @@ static int intel_irq_remapping_alloc(struct irq_domain *domain,
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;
/*