aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/msi.c
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2007-06-01 03:46:32 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-06-01 11:18:27 -0400
commit0dd11f9be47188ce08543ef65e9ece9beb2027dc (patch)
tree28a76160faedd4a506e19c2debd1d0a022bf3dfe /drivers/pci/msi.c
parent4eb527a0ca83de28e773371f42abad2ab1ed7fdf (diff)
msi: fix the ordering of msix irqs
"Mike Miller (OS Dev)" <mikem@beardog.cca.cpqcorp.net> 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" <ebiederm@xmission.com> Screwed-up-by: Michael Ellerman <michael@ellerman.id.au> Cc: "Mike Miller (OS Dev)" <mikem@beardog.cca.cpqcorp.net> Cc: Andi Kleen <ak@suse.de> Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/pci/msi.c')
-rw-r--r--drivers/pci/msi.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index f7f747016ecd..61c46d66c01e 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -333,7 +333,7 @@ static int msi_capability_init(struct pci_dev *dev)
333 msi_mask_bits_reg(pos, is_64bit_address(control)), 333 msi_mask_bits_reg(pos, is_64bit_address(control)),
334 maskbits); 334 maskbits);
335 } 335 }
336 list_add(&entry->list, &dev->msi_list); 336 list_add_tail(&entry->list, &dev->msi_list);
337 337
338 /* Configure MSI capability structure */ 338 /* Configure MSI capability structure */
339 ret = arch_setup_msi_irqs(dev, 1, PCI_CAP_ID_MSI); 339 ret = arch_setup_msi_irqs(dev, 1, PCI_CAP_ID_MSI);
@@ -404,7 +404,7 @@ static int msix_capability_init(struct pci_dev *dev,
404 entry->dev = dev; 404 entry->dev = dev;
405 entry->mask_base = base; 405 entry->mask_base = base;
406 406
407 list_add(&entry->list, &dev->msi_list); 407 list_add_tail(&entry->list, &dev->msi_list);
408 } 408 }
409 409
410 ret = arch_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX); 410 ret = arch_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX);