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>
This commit is contained in:
committed by
Linus Torvalds
parent
4eb527a0ca
commit
0dd11f9be4
@@ -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,
|
|||||||
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);
|
||||||
|
Reference in New Issue
Block a user