Thread (83 messages) flat view 83 messages, 10 authors, 2022-01-31

Re: [patch V3 28/35] PCI/MSI: Simplify pci_irq_get_affinity()

From: Cédric Le Goater <clg@kaod.org>
Date: 2021-12-18 20:42:25
Also in: dmaengine, linux-iommu, linux-pci, linuxppc-dev, lkml, xen-devel

On 12/18/21 11:25, Thomas Gleixner wrote:
On Fri, Dec 17 2021 at 15:30, Nathan Chancellor wrote:
quoted
On Fri, Dec 10, 2021 at 11:19:26PM +0100, Thomas Gleixner wrote:
I just bisected a boot failure on my AMD test desktop to this patch as
commit f48235900182 ("PCI/MSI: Simplify pci_irq_get_affinity()") in
-next. It looks like there is a problem with the NVMe drive after this
change according to the logs. Given that the hard drive is not getting
mounted for journald to write logs to, I am not really sure how to get
them from the machine so I have at least taken a picture of what I see
on my screen; open to ideas on that front!
Bah. Fix below.
That's a fix for the issue I was seeing on pseries with NVMe.

Tested-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.

quoted hunk ↗ jump to hunk
Thanks,

         tglx
---
diff --git a/drivers/pci/msi/msi.c b/drivers/pci/msi/msi.c
index 71802410e2ab..9b4910befeda 100644
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -1100,7 +1100,7 @@ EXPORT_SYMBOL(pci_irq_vector);
   */
  const struct cpumask *pci_irq_get_affinity(struct pci_dev *dev, int nr)
  {
-	int irq = pci_irq_vector(dev, nr);
+	int idx, irq = pci_irq_vector(dev, nr);
  	struct msi_desc *desc;
  
  	if (WARN_ON_ONCE(irq <= 0))
@@ -1113,7 +1113,10 @@ const struct cpumask *pci_irq_get_affinity(struct pci_dev *dev, int nr)
  
  	if (WARN_ON_ONCE(!desc->affinity))
  		return NULL;
-	return &desc->affinity[nr].mask;
+
+	/* MSI has a mask array in the descriptor. */
+	idx = dev->msi_enabled ? nr : 0;
+	return &desc->affinity[idx].mask;
  }
  EXPORT_SYMBOL(pci_irq_get_affinity);
  

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help