From: Alexander Gordeev Date: Fri, 14 Feb 2014 21:27:19 +0000 (-0700) Subject: ahci: Fix broken fallback to single MSI mode X-Git-Tag: upstream/snapshot3+hdmi~3386^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fc40363b2140f5777c88e67814fac9327bf1ee68;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git ahci: Fix broken fallback to single MSI mode Commit 7b92b4f61ec4 ("PCI/MSI: Remove pci_enable_msi_block_auto()") introduced a regression: if multiple MSI initialization fails, the code falls back to INTx rather than to single MSI. Fixes: 7b92b4f61ec4 ("PCI/MSI: Remove pci_enable_msi_block_auto()") Signed-off-by: Alexander Gordeev Signed-off-by: Bjorn Helgaas Acked-by: Tejun Heo --- diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index dc2756f..3c5f35e 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -1170,8 +1170,10 @@ static int ahci_init_interrupts(struct pci_dev *pdev, unsigned int n_ports, nvec = rc; rc = pci_enable_msi_block(pdev, nvec); - if (rc) + if (rc < 0) goto intx; + else if (rc > 0) + goto single_msi; return nvec;