mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] PCI/MSI: Initialize MSI-X descriptors in the setup loop
@ 2026-11-09  3:14 lirongqing
  2026-11-09 13:57 ` [tip: irq/msi] " tip-bot2 for Li RongQing
  2026-11-09 20:47 ` [PATCH] " Farhan Ali
  0 siblings, 2 replies; 3+ messages in thread
From: lirongqing @ 2026-11-09  3:14 UTC (permalink / raw)
  To: Bjorn Helgaas, Thomas Gleixner, Vivian Wang, Li RongQing,
	Haoxiang Li, Yuanhe Shu, Hans Zhang, Vidya Sagar, Farhan Ali,
	Shawn Lin, Juergen Gross, linux-pci, linux-kernel

From: Li RongQing <lirongqing@baidu.com>

msix_setup_msi_descs() reuses a single stack descriptor for all
MSI-X entries.

Since msix_prepare_msi_desc() only sets can_mask for non-virtual
descriptors, a virtual descriptor can inherit can_mask == 1 from
the preceding real descriptor.

As msi_domain_insert_msi_desc() copies the descriptor, this stale
value can cause pci_msix_write_vector_ctrl() to access beyond the
mapped MSI-X table.

Clear the descriptor inside the loop to ensure each MSI-X entry
starts with can_mask == 0.

Fixes: 3ece3e8e5976 ("PCI/MSI: Handle the NOMASK flag correctly for all PCI/MSI backends")
Signed-off-by: Li RongQing <lirongqing@baidu.com>
---
 drivers/pci/msi/msi.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/pci/msi/msi.c b/drivers/pci/msi/msi.c
index a346284..681dd2f 100644
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -638,9 +638,8 @@ static int msix_setup_msi_descs(struct pci_dev *dev, struct msix_entry *entries,
 	struct irq_affinity_desc *curmsk;
 	struct msi_desc desc;
 
-	memset(&desc, 0, sizeof(desc));
-
 	for (i = 0, curmsk = masks; i < nvec; i++, curmsk++) {
+		memset(&desc, 0, sizeof(desc));
 		desc.msi_index = entries ? entries[i].entry : i;
 		desc.affinity = masks ? curmsk : NULL;
 		desc.pci.msi_attrib.is_virtual = desc.msi_index >= vec_count;
-- 
2.9.4


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-11-09 20:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-09  3:14 [PATCH] PCI/MSI: Initialize MSI-X descriptors in the setup loop lirongqing
2026-11-09 13:57 ` [tip: irq/msi] " tip-bot2 for Li RongQing
2026-11-09 20:47 ` [PATCH] " Farhan Ali

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®