Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759642AbXEaXfZ (ORCPT ); Thu, 31 May 2007 19:35:25 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753218AbXEaXfO (ORCPT ); Thu, 31 May 2007 19:35:14 -0400 Received: from smtp1.linux-foundation.org ([207.189.120.13]:57927 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752241AbXEaXfM (ORCPT ); Thu, 31 May 2007 19:35:12 -0400 Date: Thu, 31 May 2007 16:34:03 -0700 From: Andrew Morton To: Roland Dreier Cc: Linus Torvalds , "Mike Miller (OS Dev)" , Michal Piotrowski , LKML Subject: Re: [2/4] 2.6.22-rc3: known regressions Message-Id: <20070531163403.6f845c84.akpm@linux-foundation.org> In-Reply-To: References: <465C188F.9000900@googlemail.com> <465C22F4.8080505@googlemail.com> <20070531220833.GA10867@beardog.cca.cpqcorp.net> <20070531223908.GA12325@beardog.cca.cpqcorp.net> <20070531155018.a8226075.akpm@linux-foundation.org> X-Mailer: Sylpheed version 2.2.7 (GTK+ 2.8.6; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2602 Lines: 71 On Thu, 31 May 2007 16:17:00 -0700 Roland Dreier wrote: > What about the changes to fix the order that MSI-X irqs are returned > in (iirc, list_add had to be changed to list_add_tail in a couple of > places). Without that change, multiple MSI-X interrupts seem to be > broken: the kernel programs the MSI-X table in the opposite order that > it gives the irq numbers to the driver. The net effect is that if I > request, say, 3 MSI-X interrupts for a device, then when the device > generates the first interrupt, the driver thinks it generated the > third interrupt, and things go fairly haywire. > That's msi-fix-the-ordering-of-msix-irqs.patch, which is also queued for the next batch. "next batch" == around 40 patches atm. Some of these need maintainer acks so they will be further delayed, or more likely just merged without the appropriate ack. From: "Eric W. Biederman" "Mike Miller (OS Dev)" writes: Found what seems the problem with our vectors being listed backward. In drivers/pci/msi.c we should be using list_add_tail rather than list_add to preserve the ordering across various kernels. Please consider this for inclusion. Signed-off-by: "Eric W. Biederman" Screwed-up-by: Michael Ellerman Cc: "Mike Miller (OS Dev)" Cc: Andi Kleen Cc: Greg KH Signed-off-by: Andrew Morton --- drivers/pci/msi.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN drivers/pci/msi.c~msi-fix-the-ordering-of-msix-irqs drivers/pci/msi.c --- a/drivers/pci/msi.c~msi-fix-the-ordering-of-msix-irqs +++ a/drivers/pci/msi.c @@ -333,7 +333,7 @@ static int msi_capability_init(struct pc msi_mask_bits_reg(pos, is_64bit_address(control)), maskbits); } - list_add(&entry->list, &dev->msi_list); + list_add_tail(&entry->list, &dev->msi_list); /* Configure MSI capability structure */ ret = arch_setup_msi_irqs(dev, 1, PCI_CAP_ID_MSI); @@ -404,7 +404,7 @@ static int msix_capability_init(struct p entry->dev = dev; entry->mask_base = base; - list_add(&entry->list, &dev->msi_list); + list_add_tail(&entry->list, &dev->msi_list); } ret = arch_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX); _ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/