Blob Blame History Raw
From: Nirmal Patel <nirmal.patel@linux.intel.com>
Date: Mon, 2 May 2022 01:49:00 -0700
Subject: [PATCH] PCI: vmd: Revert 2565e5b69c44 ("PCI: vmd: Do not disable
 MSI-X remapping if interrupt remapping is enabled by IOMMU.")
Message-id: <20220502084900.7903-3-nirmal.patel@linux.intel.com>
Patch-mainline: v5.19-rc1
Git-commit: c94f732e8001a860b42aa740b0a178a29907463c
References: bsc#1199405

Revert 2565e5b69c44 ("PCI: vmd: Do not disable MSI-X remapping if
interrupt remapping is enabled by IOMMU.")

The commit 2565e5b69c44 was added as a workaround to enable MSI-X
remapping if IOMMU enables interrupt remapping. VMD does not assign
proper IRQ domain to child devices when MSI-X remapping is disabled.
There is no dependency between MSI-X remapping by VMD and interrupt
remapping by IOMMU.

Signed-off-by: Nirmal Patel <nirmal.patel@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

---
 drivers/pci/controller/vmd.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

--- a/drivers/pci/controller/vmd.c
+++ b/drivers/pci/controller/vmd.c
@@ -6,7 +6,6 @@
 
 #include <linux/device.h>
 #include <linux/interrupt.h>
-#include <linux/iommu.h>
 #include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -711,8 +710,7 @@ static int vmd_enable_domain(struct vmd_
 	 * acceptable because the guest is usually CPU-limited and MSI
 	 * remapping doesn't become a performance bottleneck.
 	 */
-	if (iommu_capable(vmd->dev->dev.bus, IOMMU_CAP_INTR_REMAP) ||
-	    !(features & VMD_FEAT_CAN_BYPASS_MSI_REMAP) ||
+	if (!(features & VMD_FEAT_CAN_BYPASS_MSI_REMAP) ||
 	    offset[0] || offset[1]) {
 		ret = vmd_alloc_irqs(vmd);
 		if (ret)