View | Details | Raw Unified | Return to bug 116364
Collapse All | Expand All

(-)./Documentation/kernel-parameters.txt (+4 lines)
Lines 49-54 restrictions referred to are that the re Link Here
49
	MCA	MCA bus support is enabled.
49
	MCA	MCA bus support is enabled.
50
	MDA	MDA console support is enabled.
50
	MDA	MDA console support is enabled.
51
	MOUSE	Appropriate mouse support is enabled.
51
	MOUSE	Appropriate mouse support is enabled.
52
	MSI	Message Signaled Interrupts (PCI).
52
	MTD	MTD support is enabled.
53
	MTD	MTD support is enabled.
53
	NET	Appropriate network support is enabled.
54
	NET	Appropriate network support is enabled.
54
	NUMA	NUMA support is enabled.
55
	NUMA	NUMA support is enabled.
Lines 1135-1140 running once the system is up. Link Here
1135
				Mechanism 2.
1136
				Mechanism 2.
1136
		nommconf	[IA-32,X86_64] Disable use of MMCONFIG for PCI
1137
		nommconf	[IA-32,X86_64] Disable use of MMCONFIG for PCI
1137
				Configuration
1138
				Configuration
1139
		nomsi		[MSI] If the PCI_MSI kernel config parameter is
1140
				enabled, this kernel boot option can be used to
1141
				disable the use of MSI interrupts system-wide.
1138
		nosort		[IA-32] Don't sort PCI devices according to
1142
		nosort		[IA-32] Don't sort PCI devices according to
1139
				order given by the PCI BIOS. This sorting is
1143
				order given by the PCI BIOS. This sorting is
1140
				done to get a device order compatible with
1144
				done to get a device order compatible with
(-)./drivers/pci/Kconfig (+4 lines)
Lines 11-16 config PCI_MSI Link Here
11
	   generate an interrupt using an inbound Memory Write on its
11
	   generate an interrupt using an inbound Memory Write on its
12
	   PCI bus instead of asserting a device IRQ pin.
12
	   PCI bus instead of asserting a device IRQ pin.
13
13
14
	   Use of PCI MSI interrupts can be disabled at kernel boot time
15
	   by using the 'pci=nomsi' option.  This disables MSI for the
16
	   entire system.
17
14
	   If you don't know what to do here, say N.
18
	   If you don't know what to do here, say N.
15
19
16
config PCI_LEGACY_PROC
20
config PCI_LEGACY_PROC
(-)./drivers/pci/msi.c (+11 lines)
Lines 755-760 void pci_disable_msi(struct pci_dev* dev Link Here
755
	u16 control;
755
	u16 control;
756
	unsigned long flags;
756
	unsigned long flags;
757
757
758
	if (!pci_msi_enable)
759
 		return;
760
758
   	if (!dev || !(pos = pci_find_capability(dev, PCI_CAP_ID_MSI)))
761
   	if (!dev || !(pos = pci_find_capability(dev, PCI_CAP_ID_MSI)))
759
		return;
762
		return;
760
763
Lines 1006-1011 void pci_disable_msix(struct pci_dev* de Link Here
1006
	int pos, temp;
1009
	int pos, temp;
1007
	u16 control;
1010
	u16 control;
1008
1011
1012
	if (!pci_msi_enable)
1013
 		return;
1014
1009
   	if (!dev || !(pos = pci_find_capability(dev, PCI_CAP_ID_MSIX)))
1015
   	if (!dev || !(pos = pci_find_capability(dev, PCI_CAP_ID_MSIX)))
1010
		return;
1016
		return;
1011
1017
Lines 1121-1126 void msi_remove_pci_irq_vectors(struct p Link Here
1121
		}
1127
		}
1122
		dev->irq = temp;		/* Restore IOAPIC IRQ */
1128
		dev->irq = temp;		/* Restore IOAPIC IRQ */
1123
	}
1129
	}
1130
}
1131
1132
void pci_no_msi(void)
1133
{
1134
	pci_msi_enable = 0;
1124
}
1135
}
1125
1136
1126
EXPORT_SYMBOL(pci_enable_msi);
1137
EXPORT_SYMBOL(pci_enable_msi);
(-)./drivers/pci/pci.c (-2 / +6 lines)
Lines 900-907 static int __devinit pci_setup(char *str Link Here
900
		if (k)
900
		if (k)
901
			*k++ = 0;
901
			*k++ = 0;
902
		if (*str && (str = pcibios_setup(str)) && *str) {
902
		if (*str && (str = pcibios_setup(str)) && *str) {
903
			/* PCI layer options should be handled here */
903
			if (!strcmp(str, "nomsi")) {
904
			printk(KERN_ERR "PCI: Unknown option `%s'\n", str);
904
				pci_no_msi();
905
			} else {
906
				printk(KERN_ERR "PCI: Unknown option `%s'\n",
907
						str);
908
			}
905
		}
909
		}
906
		str = k;
910
		str = k;
907
	}
911
	}
(-)./drivers/pci/pci.h (+2 lines)
Lines 50-57 extern int pci_msi_quirk; Link Here
50
50
51
#ifdef CONFIG_PCI_MSI
51
#ifdef CONFIG_PCI_MSI
52
void disable_msi_mode(struct pci_dev *dev, int pos, int type);
52
void disable_msi_mode(struct pci_dev *dev, int pos, int type);
53
void pci_no_msi(void);
53
#else
54
#else
54
static inline void disable_msi_mode(struct pci_dev *dev, int pos, int type) { }
55
static inline void disable_msi_mode(struct pci_dev *dev, int pos, int type) { }
56
static inline void pci_no_msi(void) { }
55
#endif
57
#endif
56
58
57
extern int pcie_mch_quirk;
59
extern int pcie_mch_quirk;

Return to bug 116364