From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753805AbdESMqc (ORCPT ); Fri, 19 May 2017 08:46:32 -0400 Received: from verein.lst.de ([213.95.11.211]:36568 "EHLO newverein.lst.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752249AbdESMq1 (ORCPT ); Fri, 19 May 2017 08:46:27 -0400 Date: Fri, 19 May 2017 14:46:25 +0200 From: Christoph Hellwig To: Steven Rostedt Cc: Greg Kroah-Hartman , LKML , linux-usb@vger.kernel.org, Linus Torvalds , Christoph Hellwig , Mathias Nyman Subject: Re: [REGRESSION] Failed network caused by: xhci: switch to pci_alloc_irq_vectors Message-ID: <20170519124625.GA20063@lst.de> References: <20170518234234.29127245@gandalf.local.home> <20170519054223.GA5954@kroah.com> <20170519060856.57cf2b76@gandalf.local.home> <20170519083721.5a415dc3@gandalf.local.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170519083721.5a415dc3@gandalf.local.home> User-Agent: Mutt/1.5.17 (2007-11-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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? 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; }