Commit 6e24c887 authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

x86/apic/msi: Enable PCI/IMS



Enable IMS in the domain init and allocation mapping code, but do not
enable it on the vector domain as discussed in various threads on LKML.

The interrupt remap domains can expand this setting like they do with
PCI multi MSI.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Reviewed-by: default avatarKevin Tian <kevin.tian@intel.com>
Acked-by: default avatarMarc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221124232327.022658817@linutronix.de
parent c9e5bea2
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -184,6 +184,7 @@ static int x86_msi_prepare(struct irq_domain *domain, struct device *dev,
		alloc->type = X86_IRQ_ALLOC_TYPE_PCI_MSI;
		return 0;
	case DOMAIN_BUS_PCI_DEVICE_MSIX:
	case DOMAIN_BUS_PCI_DEVICE_IMS:
		alloc->type = X86_IRQ_ALLOC_TYPE_PCI_MSIX;
		return 0;
	default:
@@ -230,6 +231,10 @@ static bool x86_init_dev_msi_info(struct device *dev, struct irq_domain *domain,
	case DOMAIN_BUS_PCI_DEVICE_MSI:
	case DOMAIN_BUS_PCI_DEVICE_MSIX:
		break;
	case DOMAIN_BUS_PCI_DEVICE_IMS:
		if (!(pops->supported_flags & MSI_FLAG_PCI_IMS))
			return false;
		break;
	default:
		WARN_ON_ONCE(1);
		return false;