Commit 0dd11f9b authored by Eric W. Biederman's avatar Eric W. Biederman Committed by Linus Torvalds

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: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
Screwed-up-by: default avatarMichael 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 4eb527a0
...@@ -333,7 +333,7 @@ static int msi_capability_init(struct pci_dev *dev) ...@@ -333,7 +333,7 @@ static int msi_capability_init(struct pci_dev *dev)
msi_mask_bits_reg(pos, is_64bit_address(control)), msi_mask_bits_reg(pos, is_64bit_address(control)),
maskbits); maskbits);
} }
list_add(&entry->list, &dev->msi_list); list_add_tail(&entry->list, &dev->msi_list);
/* Configure MSI capability structure */ /* Configure MSI capability structure */
ret = arch_setup_msi_irqs(dev, 1, PCI_CAP_ID_MSI); 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,7 +404,7 @@ static int msix_capability_init(struct pci_dev *dev,
entry->dev = dev; entry->dev = dev;
entry->mask_base = base; 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); ret = arch_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSIX);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment