Index: linux-2.6.23.14/drivers/pci/Kconfig =================================================================== --- linux-2.6.23.14.orig/drivers/pci/Kconfig +++ linux-2.6.23.14/drivers/pci/Kconfig @@ -31,6 +31,12 @@ config PCI_DEBUG When in doubt, say N. +config PCI_DISABLE_COMMON_QUIRKS + bool "PCI disable common quirks" + depends on PCI + help + If you don't know what to do here, say N. + config HT_IRQ bool "Interrupts on hypertransport devices" default y Index: linux-2.6.23.14/drivers/pci/quirks.c =================================================================== --- linux-2.6.23.14.orig/drivers/pci/quirks.c +++ linux-2.6.23.14/drivers/pci/quirks.c @@ -23,6 +23,7 @@ #include #include "pci.h" +#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS /* The Mellanox Tavor device gives false positive parity errors * Mark this device with a broken_parity_status, to allow * PCI scanning code to "skip" this now blacklisted device. @@ -1510,6 +1511,7 @@ static void __devinit fixup_rev1_53c810( } } DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, fixup_rev1_53c810); +#endif /* !CONFIG_PCI_DISABLE_COMMON_QUIRKS */ static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end) { @@ -1573,6 +1575,7 @@ void pci_fixup_device(enum pci_fixup_pas } EXPORT_SYMBOL(pci_fixup_device); +#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS /* Enable 1k I/O space granularity on the Intel P64H2 */ static void __devinit quirk_p64h2_1k_io(struct pci_dev *dev) { @@ -1743,3 +1746,4 @@ static void __devinit quirk_nvidia_ck804 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_CK804_PCIE, quirk_nvidia_ck804_msi_ht_cap); #endif /* CONFIG_PCI_MSI */ +#endif /* !CONFIG_PCI_DISABLE_COMMON_QUIRKS */