Dave Jones wrote:
Gets my vote too.
I've turned off CONFIG_PCI_MSI and turned it back on about 2-3 times
now for FC5/FC6, because each time it starts to look more promising,
it seems to find new ways to regress.
I might do a build next week in rawhide with it off again too,
to see if any oddball bugs fall out.
I was thinking of leaving MSI enabled and applying this patch.
Disable MSI by default.
---
Documentation/kernel-parameters.txt | 4 ++--
drivers/pci/msi.c | 6 +++---
drivers/pci/pci.c | 4 ++--
3 files changed, 7 insertions(+), 7 deletions(-)
--- linux-2.6.20.noarch.orig/drivers/pci/msi.c
+++ linux-2.6.20.noarch/drivers/pci/msi.c
@@ -28,7 +28,7 @@ static DEFINE_SPINLOCK(msi_lock);
static struct msi_desc* msi_desc[NR_IRQS] = { [0 ... NR_IRQS-1] = NULL };
static struct kmem_cache* msi_cachep;
-static int pci_msi_enable = 1;
+static int pci_msi_enable = 0;
static int msi_cache_init(void)
{
@@ -973,9 +973,9 @@ void msi_remove_pci_irq_vectors(struct p
}
}
-void pci_no_msi(void)
+void pci_yes_msi(void)
{
- pci_msi_enable = 0;
+ pci_msi_enable = 1;
}
EXPORT_SYMBOL(pci_enable_msi);
--- linux-2.6.20.noarch.orig/drivers/pci/pci.c
+++ linux-2.6.20.noarch/drivers/pci/pci.c
@@ -1166,8 +1166,8 @@ static int __devinit pci_setup(char *str
if (k)
*k++ = 0;
if (*str && (str = pcibios_setup(str)) && *str) {
- if (!strcmp(str, "nomsi")) {
- pci_no_msi();
+ if (!strcmp(str, "msi")) {
+ pci_yes_msi();
} else {
printk(KERN_ERR "PCI: Unknown option `%s'\n",
str);
--- linux-2.6.20.noarch.orig/Documentation/kernel-parameters.txt
+++ linux-2.6.20.noarch/Documentation/kernel-parameters.txt
@@ -1199,9 +1199,9 @@ and is between 256 and 4096 characters.
Mechanism 2.
nommconf [IA-32,X86_64] Disable use of MMCONFIG for PCI
Configuration
- nomsi [MSI] If the PCI_MSI kernel config parameter is
+ msi [MSI] If the PCI_MSI kernel config parameter is
enabled, this kernel boot option can be used to
- disable the use of MSI interrupts system-wide.
+ enable the use of MSI interrupts system-wide.
nosort [IA-32] Don't sort PCI devices according to
order given by the PCI BIOS. This sorting is
done to get a device order compatible with