[SRU][Bionic][PATCH 2/2] UBUNTU: SAUCE: Revert "PCI/MSI: Enforce that MSI-X table entry is masked for update"

Kleber Sacilotto de Souza kleber.souza at canonical.com
Fri Oct 15 10:54:29 UTC 2021


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

This reverts commit 27571f5ea1dd074924b41a455c50dc2278e8c2b7.

Upstream commit da181dc974ad667579baece33c2c8d2d1e4558d5 when applied
to Ubuntu kernel 4.15 is causing boot issues on some hardware platforms.
Revert the change until a better solution is not found.

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

diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 7497c37a1e48..455f66fad1c5 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -303,25 +303,10 @@ void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
 		/* Don't touch the hardware now */
 	} else if (entry->msi_attrib.is_msix) {
 		void __iomem *base = pci_msix_desc_addr(entry);
-		bool unmasked = !(entry->masked & PCI_MSIX_ENTRY_CTRL_MASKBIT);
-
-		/*
-		 * The specification mandates that the entry is masked
-		 * when the message is modified:
-		 *
-		 * "If software changes the Address or Data value of an
-		 * entry while the entry is unmasked, the result is
-		 * undefined."
-		 */
-		if (unmasked)
-			__pci_msix_desc_mask_irq(entry, PCI_MSIX_ENTRY_CTRL_MASKBIT);
 
 		writel(msg->address_lo, base + PCI_MSIX_ENTRY_LOWER_ADDR);
 		writel(msg->address_hi, base + PCI_MSIX_ENTRY_UPPER_ADDR);
 		writel(msg->data, base + PCI_MSIX_ENTRY_DATA);
-
-		if (unmasked)
-			__pci_msix_desc_mask_irq(entry, 0);
 	} else {
 		int pos = dev->msi_cap;
 		u16 msgctl;
-- 
2.30.2




More information about the kernel-team mailing list