diff mbox

use pci_alloc_irq_vectors issues

Message ID 20161017120234.GA14105@lst.de
State Not Applicable
Delegated to: David Miller
Headers show

Commit Message

Christoph Hellwig Oct. 17, 2016, 12:02 p.m. UTC
Thanks a lot!  I think the current check on when to fall back from
the multi-MSI to the single-MSI case is too narrow and we should
just always fall back.

Can you see if the patch below fixes your issue (revert the debug patch
first, please)?

--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Emmanuel Benisty Oct. 17, 2016, 12:48 p.m. UTC | #1
On Mon, Oct 17, 2016 at 2:02 PM, Christoph Hellwig <hch@lst.de> wrote:
> Thanks a lot!  I think the current check on when to fall back from
> the multi-MSI to the single-MSI case is too narrow and we should
> just always fall back.
>
> Can you see if the patch below fixes your issue (revert the debug patch
> first, please)?
>
> diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
> index ba5f11c..b4b8004 100644
> --- a/drivers/ata/ahci.c
> +++ b/drivers/ata/ahci.c
> @@ -1436,13 +1436,6 @@ static int ahci_init_msi(struct pci_dev *pdev, unsigned int n_ports,
>         }
>
>         /*
> -        * -ENOSPC indicated we don't have enough vectors.  Don't bother trying
> -        * a single vectors for any other error:
> -        */
> -       if (nvec < 0 && nvec != -ENOSPC)
> -               return nvec;
> -
> -       /*
>          * If the host is not capable of supporting per-port vectors, fall
>          * back to single MSI before finally attempting single MSI-X.
>          */

Sorry Christoph, issue is still there:

http://i.imgur.com/smDjT0y.jpg
http://i.imgur.com/VV4FGI1.jpg
http://i.imgur.com/Xqdayvj.jpg

Thanks
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index ba5f11c..b4b8004 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -1436,13 +1436,6 @@  static int ahci_init_msi(struct pci_dev *pdev, unsigned int n_ports,
 	}
 
 	/*
-	 * -ENOSPC indicated we don't have enough vectors.  Don't bother trying
-	 * a single vectors for any other error:
-	 */
-	if (nvec < 0 && nvec != -ENOSPC)
-		return nvec;
-
-	/*
 	 * If the host is not capable of supporting per-port vectors, fall
 	 * back to single MSI before finally attempting single MSI-X.
 	 */