diff --git a/drivers/staging/vme/bridges/Module.symvers b/drivers/staging/vme/bridges/Module.symvers new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/drivers/staging/vme/bridges/vme_tsi148.c b/drivers/staging/vme/bridges/vme_tsi148.c index 2f8f399df85b..70c9e41154e7 100644 --- a/drivers/staging/vme/bridges/vme_tsi148.c +++ b/drivers/staging/vme/bridges/vme_tsi148.c @@ -374,8 +374,11 @@ static int tsi148_irq_init(struct vme_bridge *tsi148_bridge) return 0; } -static void tsi148_irq_exit(struct tsi148_driver *bridge, struct pci_dev *pdev) +static void tsi148_irq_exit(struct vme_bridge *tsi148_bridge, + struct pci_dev *pdev) { + struct tsi148_driver *bridge = tsi148_bridge->driver_priv; + /* Turn off interrupts */ iowrite32be(0x0, bridge->base + TSI148_LCSR_INTEO); iowrite32be(0x0, bridge->base + TSI148_LCSR_INTEN); @@ -384,7 +387,7 @@ static void tsi148_irq_exit(struct tsi148_driver *bridge, struct pci_dev *pdev) iowrite32be(0xFFFFFFFF, bridge->base + TSI148_LCSR_INTC); /* Detach interrupt handler */ - free_irq(pdev->irq, pdev); + free_irq(pdev->irq, tsi148_bridge); } /* @@ -2511,7 +2514,7 @@ static int tsi148_probe(struct pci_dev *pdev, const struct pci_device_id *id) kfree(master_image); } - tsi148_irq_exit(tsi148_device, pdev); + tsi148_irq_exit(tsi148_bridge, pdev); err_irq: err_test: iounmap(tsi148_device->base); @@ -2583,7 +2586,7 @@ static void tsi148_remove(struct pci_dev *pdev) iowrite32be(0x0, bridge->base + TSI148_LCSR_INTM1); iowrite32be(0x0, bridge->base + TSI148_LCSR_INTM2); - tsi148_irq_exit(bridge, pdev); + tsi148_irq_exit(tsi148_bridge, pdev); vme_unregister_bridge(tsi148_bridge);