summaryrefslogtreecommitdiff
path: root/drivers/pci
diff options
context:
space:
mode:
authorMarian Balakowicz <m8@semihalf.com>2007-07-03 11:03:18 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2007-08-22 14:48:40 -0700
commit4e68fc97b17470365a65bc569523dd9012730e44 (patch)
tree3b8bc704011d2ae19e63b57505b8218873426ee4 /drivers/pci
parentce5ccdef1090367f3024b4d5e7908bf6bd2929ae (diff)
downloadlinux-3.10-4e68fc97b17470365a65bc569523dd9012730e44.tar.gz
linux-3.10-4e68fc97b17470365a65bc569523dd9012730e44.tar.bz2
linux-3.10-4e68fc97b17470365a65bc569523dd9012730e44.zip
PCI: quirk_e100_interrupt() called too early
quirk_e100_interrupts() is called after PCI controller is initialized and before PCI bus enumeration is performed. On some powerpc platforms which modify PCI controller configuration and set different MEM and IO windows than those set by firmware quirk_e100_interrupt() is causing kernel panic as it tries to read from device BAR0 offets which at this time points to a invalid PCI window (set by firmware). This patch delays the quirk_100_interrupt() to pci_fixup_final phase, which happens after bus enumeration and before PCI enable and device driver initialization. Signed-off-by: Marian Balakowicz <m8@semihalf.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/quirks.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index c559085c89a..ab1c5c5d03f 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -1485,7 +1485,7 @@ static void __devinit quirk_e100_interrupt(struct pci_dev *dev)
iounmap(csr);
}
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, quirk_e100_interrupt);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, quirk_e100_interrupt);
static void __devinit fixup_rev1_53c810(struct pci_dev* dev)
{