Re: use pci_alloc_irq_vectors issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Emmanuel,

I think I have an idea now - we are accidentally hitting the per-port
MSI vector case because your SSD only has one AHCI "port".  Can you
try the below patch:

diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index ba5f11c..3c2f92b 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -1413,6 +1413,7 @@ static int ahci_init_msi(struct pci_dev *pdev, unsigned int n_ports,
 	if (hpriv->flags & AHCI_HFLAG_NO_MSI)
 		return -ENODEV;
 
+	if (n_ports > 1) {
 	/*
 	 * If number of MSIs is less than number of ports then Sharing Last
 	 * Message mode could be enforced. In this case assume that advantage
@@ -1434,6 +1435,7 @@ static int ahci_init_msi(struct pci_dev *pdev, unsigned int n_ports,
 		printk(KERN_INFO "ahci: MRSM is on, fallback to single MSI\n");
 		pci_free_irq_vectors(pdev);
 	}
+	}
 
 	/*
 	 * -ENOSPC indicated we don't have enough vectors.  Don't bother trying
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux