[SRU][F][I][PATCH 1/1] UBUNTU: SAUCE: Revert "PCI/MSI: Mask MSI-X vectors only on success"

Kleber Sacilotto de Souza kleber.souza at canonical.com
Wed Feb 23 10:24:13 UTC 2022


BugLink: https://bugs.launchpad.net/bugs/1961968

This reverts upstream commit 6032046ec4b70176d247a71836186d47b25d1684.

This commit is causing PCI-E initialization failures on some systems.
Revert this patch for now until a follow-up fix is found.

Signed-off-by: Kleber Sacilotto de Souza <kleber.souza at canonical.com>
---
 drivers/pci/msi.c | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 155bd207b2e6..6166415faf2f 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -821,6 +821,9 @@ static int msix_capability_init(struct pci_dev *dev, struct msix_entry *entries,
 		goto out_disable;
 	}
 
+	/* Ensure that all table entries are masked. */
+	msix_mask_all(base, tsize);
+
 	ret = msix_setup_entries(dev, base, entries, nvec, affd);
 	if (ret)
 		goto out_disable;
@@ -843,16 +846,6 @@ static int msix_capability_init(struct pci_dev *dev, struct msix_entry *entries,
 	/* Set MSI-X enabled bits and unmask the function */
 	pci_intx_for_msi(dev, 0);
 	dev->msix_enabled = 1;
-
-	/*
-	 * Ensure that all table entries are masked to prevent
-	 * stale entries from firing in a crash kernel.
-	 *
-	 * Done late to deal with a broken Marvell NVME device
-	 * which takes the MSI-X mask bits into account even
-	 * when MSI-X is disabled, which prevents MSI delivery.
-	 */
-	msix_mask_all(base, tsize);
 	pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0);
 
 	pcibios_free_irq(dev);
-- 
2.32.0




More information about the kernel-team mailing list