Re: [REGRESSION] Failed network caused by: xhci: switch to pci_alloc_irq_vectors

Steven Rostedt
2017-05-19T13:45:34Z

On Fri, 19 May 2017 14:46:25 +0200
Christoph Hellwig <hch@lst.de> wrote:

> On Fri, May 19, 2017 at 08:37:21AM -0400, Steven Rostedt wrote:
> > ktest config bisect ended with:
> >
> > ***************************************
> > Found bad config: CONFIG_PCI_MSI
> > ***************************************
>
> Oh, that's interesting. I think there's been a bug in the !CONFIG_PCI_MSI
> fallback for pci_alloc_irq_vectors since the very beginning. And it
> didn't matter for any driver so far, but xhci has a very odd way
> to set MSI(-X) vs legacy interrupts.
>
> Can you try the patch below?

Works. Thanks!

Tested-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

-- Steve

>
>
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 33c2b0b77429..5a7fd3b6a7b9 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -1342,7 +1342,7 @@ pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs,
> unsigned int max_vecs, unsigned int flags,
> const struct irq_affinity *aff_desc)
> {
> - if (min_vecs > 1)
> + if (min_vecs > 1 || !(flags & PCI_IRQ_LEGACY))
> return -EINVAL;
> return 1;
> }