ssb-pcicore: Fix IRQ-vector init on embedded devices
authorMichael Buesch <mb@bu3sch.de>
Fri, 4 Jul 2008 21:44:37 +0000 (23:44 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 7 Jul 2008 19:31:40 +0000 (15:31 -0400)
On embedded devices we must not route the interrupts through
the PCI core, if our host-bus is not PCI.

Reported-by: Steve Brown <sbrown@cortland.com>
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/ssb/driver_pcicore.c

index d28c53868093ce533c88e9b88a80334d9ac5ebca..538c570df3373e147c399a2d0907cf3b20d16762 100644 (file)
@@ -537,6 +537,13 @@ int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc,
        int err = 0;
        u32 tmp;
 
+       if (dev->bus->bustype != SSB_BUSTYPE_PCI) {
+               /* This SSB device is not on a PCI host-bus. So the IRQs are
+                * not routed through the PCI core.
+                * So we must not enable routing through the PCI core. */
+               goto out;
+       }
+
        if (!pdev)
                goto out;
        bus = pdev->bus;