> From: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Sent: Friday, November 11, 2022 9:54 PM > > PCI/MSI and PCI/MSI-X are mutually exclusive, but the MSI-X enable code > lacks a check for already enabled MSI. > > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > --- > drivers/pci/msi/msi.c | 5 +++++ > 1 file changed, 5 insertions(+) > > --- a/drivers/pci/msi/msi.c > +++ b/drivers/pci/msi/msi.c > @@ -935,6 +935,11 @@ static int __pci_enable_msix_range(struc > if (maxvec < minvec) > return -ERANGE; > > + if (dev->msi_enabled) { > + pci_info(dev, "can't enable MSI-X (MSI already enabled)\n"); > + return -EINVAL; > + } > + > if (WARN_ON_ONCE(dev->msix_enabled)) > return -EINVAL; > a same check remains in __pci_enable_msix(): /* Check whether driver already requested for MSI IRQ */ if (dev->msi_enabled) { pci_info(dev, "can't enable MSI-X (MSI IRQ already assigned)\n"); return -EINVAL; } return msix_capability_init(dev, entries, nvec, affd); It's removed later in patch33 when sanitizing MSI-X checks. But logically the removal can come with this patch.