All the PCI comedi drivers call comedi_pci_disable() either directly
or as part of their (*detach). Move the free_irq() into comedi_pci_disable()
so that the drivers don't have to deal with it.

For drivers that then only call comedi_pci_disable() in their
private (*detach), remove the private function and use the helper
directly for the (*detach).

For aesthetic reasons, tidy up the (*detach) in the icp_multi, ni_6527,
and ni_65xx drivers.

In the rtd520 driver, the write to the PLX_INTRCS_REG register to disable
the interrupts is not needed. The previous call to rtd_reset() already
cleared the register.

Signed-off-by: H Hartley Sweeten <[email protected]>
Cc: Ian Abbott <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
---
 drivers/staging/comedi/comedi_pci.c                    |  5 +++++
 drivers/staging/comedi/drivers/addi-data/addi_common.c |  2 --
 drivers/staging/comedi/drivers/addi_apci_1032.c        |  2 --
 drivers/staging/comedi/drivers/addi_apci_1710.c        |  2 --
 drivers/staging/comedi/drivers/addi_apci_2032.c        |  2 --
 drivers/staging/comedi/drivers/addi_apci_3120.c        |  2 --
 drivers/staging/comedi/drivers/addi_apci_3501.c        |  2 --
 drivers/staging/comedi/drivers/adl_pci9111.c           |  2 --
 drivers/staging/comedi/drivers/adl_pci9118.c           |  2 --
 drivers/staging/comedi/drivers/adv_pci1710.c           |  2 --
 drivers/staging/comedi/drivers/amplc_dio200_common.c   |  2 --
 drivers/staging/comedi/drivers/amplc_pc236.c           |  2 --
 drivers/staging/comedi/drivers/amplc_pci224.c          |  2 --
 drivers/staging/comedi/drivers/amplc_pci230.c          |  2 --
 drivers/staging/comedi/drivers/cb_pcidas.c             |  2 --
 drivers/staging/comedi/drivers/cb_pcidas64.c           |  2 --
 drivers/staging/comedi/drivers/cb_pcimdas.c            |  9 +--------
 drivers/staging/comedi/drivers/daqboard2000.c          |  2 --
 drivers/staging/comedi/drivers/dt3000.c                |  2 --
 drivers/staging/comedi/drivers/gsc_hpdi.c              |  2 --
 drivers/staging/comedi/drivers/icp_multi.c             |  9 ++++-----
 drivers/staging/comedi/drivers/me4000.c                |  2 --
 drivers/staging/comedi/drivers/ni_6527.c               |  8 +++-----
 drivers/staging/comedi/drivers/ni_65xx.c               | 18 ++++++------------
 drivers/staging/comedi/drivers/ni_660x.c               |  2 --
 drivers/staging/comedi/drivers/ni_labpc.c              |  5 +----
 drivers/staging/comedi/drivers/ni_pcidio.c             |  2 --
 drivers/staging/comedi/drivers/ni_pcimio.c             |  2 --
 drivers/staging/comedi/drivers/rtd520.c                |  6 ------
 drivers/staging/comedi/drivers/s626.c                  |  2 --
 30 files changed, 20 insertions(+), 86 deletions(-)

diff --git a/drivers/staging/comedi/comedi_pci.c 
b/drivers/staging/comedi/comedi_pci.c
index 5fad084..62e3554 100644
--- a/drivers/staging/comedi/comedi_pci.c
+++ b/drivers/staging/comedi/comedi_pci.c
@@ -21,6 +21,7 @@
  */
 
 #include <linux/pci.h>
+#include <linux/interrupt.h>
 
 #include "comedidev.h"
 
@@ -69,6 +70,10 @@ void comedi_pci_disable(struct comedi_device *dev)
        struct pci_dev *pcidev = comedi_to_pci_dev(dev);
 
        if (pcidev && dev->ioenabled) {
+               if (dev->irq) {
+                       free_irq(dev->irq, dev);
+                       dev->irq = 0;
+               }
                pci_release_regions(pcidev);
                pci_disable_device(pcidev);
        }
diff --git a/drivers/staging/comedi/drivers/addi-data/addi_common.c 
b/drivers/staging/comedi/drivers/addi-data/addi_common.c
index 0c3db57..54f1843 100644
--- a/drivers/staging/comedi/drivers/addi-data/addi_common.c
+++ b/drivers/staging/comedi/drivers/addi-data/addi_common.c
@@ -321,8 +321,6 @@ static void i_ADDI_Detach(struct comedi_device *dev)
        if (devpriv) {
                if (dev->iobase)
                        i_ADDI_Reset(dev);
-               if (dev->irq)
-                       free_irq(dev->irq, dev);
                if (devpriv->dw_AiBase)
                        iounmap(devpriv->dw_AiBase);
        }
diff --git a/drivers/staging/comedi/drivers/addi_apci_1032.c 
b/drivers/staging/comedi/drivers/addi_apci_1032.c
index 3d4878f..a2e0d6e 100644
--- a/drivers/staging/comedi/drivers/addi_apci_1032.c
+++ b/drivers/staging/comedi/drivers/addi_apci_1032.c
@@ -353,8 +353,6 @@ static void apci1032_detach(struct comedi_device *dev)
 {
        if (dev->iobase)
                apci1032_reset(dev);
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        comedi_pci_disable(dev);
 }
 
diff --git a/drivers/staging/comedi/drivers/addi_apci_1710.c 
b/drivers/staging/comedi/drivers/addi_apci_1710.c
index c9e6471..03884a5 100644
--- a/drivers/staging/comedi/drivers/addi_apci_1710.c
+++ b/drivers/staging/comedi/drivers/addi_apci_1710.c
@@ -62,8 +62,6 @@ static void apci1710_detach(struct comedi_device *dev)
 {
        if (dev->iobase)
                i_APCI1710_Reset(dev);
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        comedi_pci_disable(dev);
 }
 
diff --git a/drivers/staging/comedi/drivers/addi_apci_2032.c 
b/drivers/staging/comedi/drivers/addi_apci_2032.c
index b666637..b5bbcf8 100644
--- a/drivers/staging/comedi/drivers/addi_apci_2032.c
+++ b/drivers/staging/comedi/drivers/addi_apci_2032.c
@@ -350,8 +350,6 @@ static void apci2032_detach(struct comedi_device *dev)
 {
        if (dev->iobase)
                apci2032_reset(dev);
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        if (dev->read_subdev)
                kfree(dev->read_subdev->private);
        comedi_spriv_free(dev, 1);
diff --git a/drivers/staging/comedi/drivers/addi_apci_3120.c 
b/drivers/staging/comedi/drivers/addi_apci_3120.c
index 317a26d..b54e273 100644
--- a/drivers/staging/comedi/drivers/addi_apci_3120.c
+++ b/drivers/staging/comedi/drivers/addi_apci_3120.c
@@ -208,8 +208,6 @@ static void apci3120_detach(struct comedi_device *dev)
        if (devpriv) {
                if (dev->iobase)
                        i_APCI3120_Reset(dev);
-               if (dev->irq)
-                       free_irq(dev->irq, dev);
                if (devpriv->ul_DmaBufferVirtual[0]) {
                        free_pages((unsigned long)devpriv->
                                ul_DmaBufferVirtual[0],
diff --git a/drivers/staging/comedi/drivers/addi_apci_3501.c 
b/drivers/staging/comedi/drivers/addi_apci_3501.c
index a0cf6ec..9beeee9 100644
--- a/drivers/staging/comedi/drivers/addi_apci_3501.c
+++ b/drivers/staging/comedi/drivers/addi_apci_3501.c
@@ -423,8 +423,6 @@ static void apci3501_detach(struct comedi_device *dev)
 {
        if (dev->iobase)
                apci3501_reset(dev);
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        comedi_pci_disable(dev);
 }
 
diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c 
b/drivers/staging/comedi/drivers/adl_pci9111.c
index 6247fdc..9d6a525 100644
--- a/drivers/staging/comedi/drivers/adl_pci9111.c
+++ b/drivers/staging/comedi/drivers/adl_pci9111.c
@@ -933,8 +933,6 @@ static void pci9111_detach(struct comedi_device *dev)
 {
        if (dev->iobase)
                pci9111_reset(dev);
-       if (dev->irq != 0)
-               free_irq(dev->irq, dev);
        comedi_pci_disable(dev);
 }
 
diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c 
b/drivers/staging/comedi/drivers/adl_pci9118.c
index cb4ef2d..cb423e6 100644
--- a/drivers/staging/comedi/drivers/adl_pci9118.c
+++ b/drivers/staging/comedi/drivers/adl_pci9118.c
@@ -2190,8 +2190,6 @@ static void pci9118_detach(struct comedi_device *dev)
        if (devpriv) {
                if (devpriv->valid)
                        pci9118_reset(dev);
-               if (dev->irq)
-                       free_irq(dev->irq, dev);
                if (devpriv->dmabuf_virt[0])
                        free_pages((unsigned long)devpriv->dmabuf_virt[0],
                                   devpriv->dmabuf_pages[0]);
diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c 
b/drivers/staging/comedi/drivers/adv_pci1710.c
index f847bbc..520a1b4 100644
--- a/drivers/staging/comedi/drivers/adv_pci1710.c
+++ b/drivers/staging/comedi/drivers/adv_pci1710.c
@@ -1364,8 +1364,6 @@ static void pci1710_detach(struct comedi_device *dev)
 {
        if (dev->iobase)
                pci1710_reset(dev);
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        comedi_pci_disable(dev);
 }
 
diff --git a/drivers/staging/comedi/drivers/amplc_dio200_common.c 
b/drivers/staging/comedi/drivers/amplc_dio200_common.c
index 3403e5c..5cea2bd 100644
--- a/drivers/staging/comedi/drivers/amplc_dio200_common.c
+++ b/drivers/staging/comedi/drivers/amplc_dio200_common.c
@@ -1235,8 +1235,6 @@ void amplc_dio200_common_detach(struct comedi_device *dev)
 
        if (!thisboard || !devpriv)
                return;
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        if (dev->subdevices) {
                layout = dio200_board_layout(thisboard);
                for (n = 0; n < dev->n_subdevices; n++) {
diff --git a/drivers/staging/comedi/drivers/amplc_pc236.c 
b/drivers/staging/comedi/drivers/amplc_pc236.c
index 115ecd5..5e3b600 100644
--- a/drivers/staging/comedi/drivers/amplc_pc236.c
+++ b/drivers/staging/comedi/drivers/amplc_pc236.c
@@ -548,8 +548,6 @@ static void pc236_detach(struct comedi_device *dev)
                comedi_legacy_detach(dev);
        } else if (is_pci_board(thisboard)) {
                struct pci_dev *pcidev = comedi_to_pci_dev(dev);
-               if (dev->irq)
-                       free_irq(dev->irq, dev);
                comedi_pci_disable(dev);
                if (pcidev)
                        pci_dev_put(pcidev);
diff --git a/drivers/staging/comedi/drivers/amplc_pci224.c 
b/drivers/staging/comedi/drivers/amplc_pci224.c
index 4d7eab9..961bd85 100644
--- a/drivers/staging/comedi/drivers/amplc_pci224.c
+++ b/drivers/staging/comedi/drivers/amplc_pci224.c
@@ -1471,8 +1471,6 @@ static void pci224_detach(struct comedi_device *dev)
        struct pci224_private *devpriv = dev->private;
        struct pci_dev *pcidev = comedi_to_pci_dev(dev);
 
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        if (dev->subdevices) {
                struct comedi_subdevice *s;
 
diff --git a/drivers/staging/comedi/drivers/amplc_pci230.c 
b/drivers/staging/comedi/drivers/amplc_pci230.c
index 49200fb..d15702a 100644
--- a/drivers/staging/comedi/drivers/amplc_pci230.c
+++ b/drivers/staging/comedi/drivers/amplc_pci230.c
@@ -2835,8 +2835,6 @@ static void pci230_detach(struct comedi_device *dev)
        struct pci_dev *pcidev = comedi_to_pci_dev(dev);
 
        comedi_spriv_free(dev, 2);
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        comedi_pci_disable(dev);
        if (pcidev)
                pci_dev_put(pcidev);
diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c 
b/drivers/staging/comedi/drivers/cb_pcidas.c
index 53dd298..6cd84ab 100644
--- a/drivers/staging/comedi/drivers/cb_pcidas.c
+++ b/drivers/staging/comedi/drivers/cb_pcidas.c
@@ -1606,8 +1606,6 @@ static void cb_pcidas_detach(struct comedi_device *dev)
                             devpriv->s5933_config + AMCC_OP_REG_INTCSR);
                }
        }
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        comedi_spriv_free(dev, 2);
        comedi_pci_disable(dev);
 }
diff --git a/drivers/staging/comedi/drivers/cb_pcidas64.c 
b/drivers/staging/comedi/drivers/cb_pcidas64.c
index c3e5495..b1a4bcc 100644
--- a/drivers/staging/comedi/drivers/cb_pcidas64.c
+++ b/drivers/staging/comedi/drivers/cb_pcidas64.c
@@ -4121,8 +4121,6 @@ static void detach(struct comedi_device *dev)
        struct pcidas64_private *devpriv = dev->private;
        unsigned int i;
 
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        if (devpriv) {
                if (pcidev) {
                        if (devpriv->plx9080_iobase) {
diff --git a/drivers/staging/comedi/drivers/cb_pcimdas.c 
b/drivers/staging/comedi/drivers/cb_pcimdas.c
index 29813c9..19a13f4 100644
--- a/drivers/staging/comedi/drivers/cb_pcimdas.c
+++ b/drivers/staging/comedi/drivers/cb_pcimdas.c
@@ -273,18 +273,11 @@ static int cb_pcimdas_auto_attach(struct comedi_device 
*dev,
        return 0;
 }
 
-static void cb_pcimdas_detach(struct comedi_device *dev)
-{
-       if (dev->irq)
-               free_irq(dev->irq, dev);
-       comedi_pci_disable(dev);
-}
-
 static struct comedi_driver cb_pcimdas_driver = {
        .driver_name    = "cb_pcimdas",
        .module         = THIS_MODULE,
        .auto_attach    = cb_pcimdas_auto_attach,
-       .detach         = cb_pcimdas_detach,
+       .detach         = comedi_pci_disable,
 };
 
 static int cb_pcimdas_pci_probe(struct pci_dev *dev,
diff --git a/drivers/staging/comedi/drivers/daqboard2000.c 
b/drivers/staging/comedi/drivers/daqboard2000.c
index c1f14f0..fd8e3f0 100644
--- a/drivers/staging/comedi/drivers/daqboard2000.c
+++ b/drivers/staging/comedi/drivers/daqboard2000.c
@@ -767,8 +767,6 @@ static void daqboard2000_detach(struct comedi_device *dev)
        struct daqboard2000_private *devpriv = dev->private;
 
        comedi_spriv_free(dev, 2);
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        if (devpriv) {
                if (devpriv->daq)
                        iounmap(devpriv->daq);
diff --git a/drivers/staging/comedi/drivers/dt3000.c 
b/drivers/staging/comedi/drivers/dt3000.c
index 7e03929..e6160b8 100644
--- a/drivers/staging/comedi/drivers/dt3000.c
+++ b/drivers/staging/comedi/drivers/dt3000.c
@@ -811,8 +811,6 @@ static void dt3000_detach(struct comedi_device *dev)
 {
        struct dt3k_private *devpriv = dev->private;
 
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        if (devpriv) {
                if (devpriv->io_addr)
                        iounmap(devpriv->io_addr);
diff --git a/drivers/staging/comedi/drivers/gsc_hpdi.c 
b/drivers/staging/comedi/drivers/gsc_hpdi.c
index 0c061df..8fa98a4 100644
--- a/drivers/staging/comedi/drivers/gsc_hpdi.c
+++ b/drivers/staging/comedi/drivers/gsc_hpdi.c
@@ -558,8 +558,6 @@ static void hpdi_detach(struct comedi_device *dev)
        struct hpdi_private *devpriv = dev->private;
        unsigned int i;
 
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        if (devpriv) {
                if (devpriv->plx9080_iobase) {
                        disable_plx_interrupts(dev);
diff --git a/drivers/staging/comedi/drivers/icp_multi.c 
b/drivers/staging/comedi/drivers/icp_multi.c
index 08ab9d6..dacf9c5 100644
--- a/drivers/staging/comedi/drivers/icp_multi.c
+++ b/drivers/staging/comedi/drivers/icp_multi.c
@@ -589,13 +589,12 @@ static void icp_multi_detach(struct comedi_device *dev)
 {
        struct icp_multi_private *devpriv = dev->private;
 
-       if (devpriv)
+       if (devpriv) {
                if (devpriv->valid)
                        icp_multi_reset(dev);
-       if (dev->irq)
-               free_irq(dev->irq, dev);
-       if (devpriv && devpriv->io_addr)
-               iounmap(devpriv->io_addr);
+               if (devpriv->io_addr)
+                       iounmap(devpriv->io_addr);
+       }
        comedi_pci_disable(dev);
 }
 
diff --git a/drivers/staging/comedi/drivers/me4000.c 
b/drivers/staging/comedi/drivers/me4000.c
index 641e693..697a1db 100644
--- a/drivers/staging/comedi/drivers/me4000.c
+++ b/drivers/staging/comedi/drivers/me4000.c
@@ -1680,8 +1680,6 @@ static int me4000_auto_attach(struct comedi_device *dev,
 
 static void me4000_detach(struct comedi_device *dev)
 {
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        if (dev->iobase)
                me4000_reset(dev);
        comedi_pci_disable(dev);
diff --git a/drivers/staging/comedi/drivers/ni_6527.c 
b/drivers/staging/comedi/drivers/ni_6527.c
index d10f777..b2b56d6 100644
--- a/drivers/staging/comedi/drivers/ni_6527.c
+++ b/drivers/staging/comedi/drivers/ni_6527.c
@@ -414,12 +414,10 @@ static void ni6527_detach(struct comedi_device *dev)
 {
        struct ni6527_private *devpriv = dev->private;
 
-       if (devpriv && devpriv->mite && devpriv->mite->daq_io_addr)
-               writeb(0x00,
-                      devpriv->mite->daq_io_addr + Master_Interrupt_Control);
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        if (devpriv && devpriv->mite) {
+               if (devpriv->mite->daq_io_addr)
+                       writeb(0x00, devpriv->mite->daq_io_addr +
+                                    Master_Interrupt_Control);
                mite_unsetup(devpriv->mite);
                mite_free(devpriv->mite);
        }
diff --git a/drivers/staging/comedi/drivers/ni_65xx.c 
b/drivers/staging/comedi/drivers/ni_65xx.c
index 3f71f0f..eacb3fa 100644
--- a/drivers/staging/comedi/drivers/ni_65xx.c
+++ b/drivers/staging/comedi/drivers/ni_65xx.c
@@ -732,21 +732,15 @@ static void ni_65xx_detach(struct comedi_device *dev)
        struct ni_65xx_private *devpriv = dev->private;
        int i;
 
-       if (devpriv && devpriv->mite && devpriv->mite->daq_io_addr) {
-               writeb(0x00,
-                      devpriv->mite->daq_io_addr +
-                      Master_Interrupt_Control);
+       if (devpriv && devpriv->mite) {
+               if (devpriv->mite->daq_io_addr)
+                       writeb(0x00, devpriv->mite->daq_io_addr +
+                                    Master_Interrupt_Control);
+               mite_unsetup(devpriv->mite);
+               mite_free(devpriv->mite);
        }
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        for (i = 0; i < dev->n_subdevices; ++i)
                comedi_spriv_free(dev, i);
-       if (devpriv) {
-               if (devpriv->mite) {
-                       mite_unsetup(devpriv->mite);
-                       mite_free(devpriv->mite);
-               }
-       }
        comedi_pci_disable(dev);
 }
 
diff --git a/drivers/staging/comedi/drivers/ni_660x.c 
b/drivers/staging/comedi/drivers/ni_660x.c
index 5cdda7f..f4a64cc 100644
--- a/drivers/staging/comedi/drivers/ni_660x.c
+++ b/drivers/staging/comedi/drivers/ni_660x.c
@@ -1298,8 +1298,6 @@ static void ni_660x_detach(struct comedi_device *dev)
 {
        struct ni_660x_private *devpriv = dev->private;
 
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        if (devpriv) {
                if (devpriv->counter_dev)
                        ni_gpct_device_destroy(devpriv->counter_dev);
diff --git a/drivers/staging/comedi/drivers/ni_labpc.c 
b/drivers/staging/comedi/drivers/ni_labpc.c
index 96a6837..99f7698 100644
--- a/drivers/staging/comedi/drivers/ni_labpc.c
+++ b/drivers/staging/comedi/drivers/ni_labpc.c
@@ -1877,11 +1877,8 @@ void labpc_common_detach(struct comedi_device *dev)
                mite_unsetup(devpriv->mite);
                mite_free(devpriv->mite);
        }
-       if (board->bustype == pci_bustype) {
-               if (dev->irq)
-                       free_irq(dev->irq, dev);
+       if (board->bustype == pci_bustype)
                comedi_pci_disable(dev);
-       }
 #endif
 }
 EXPORT_SYMBOL_GPL(labpc_common_detach);
diff --git a/drivers/staging/comedi/drivers/ni_pcidio.c 
b/drivers/staging/comedi/drivers/ni_pcidio.c
index b5f340c..6073d7b 100644
--- a/drivers/staging/comedi/drivers/ni_pcidio.c
+++ b/drivers/staging/comedi/drivers/ni_pcidio.c
@@ -1194,8 +1194,6 @@ static void nidio_detach(struct comedi_device *dev)
 {
        struct nidio96_private *devpriv = dev->private;
 
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        if (devpriv) {
                if (devpriv->di_mite_ring) {
                        mite_free_ring(devpriv->di_mite_ring);
diff --git a/drivers/staging/comedi/drivers/ni_pcimio.c 
b/drivers/staging/comedi/drivers/ni_pcimio.c
index 634d023..544193d 100644
--- a/drivers/staging/comedi/drivers/ni_pcimio.c
+++ b/drivers/staging/comedi/drivers/ni_pcimio.c
@@ -1452,8 +1452,6 @@ static void pcimio_detach(struct comedi_device *dev)
        struct ni_private *devpriv = dev->private;
 
        mio_common_detach(dev);
-       if (dev->irq)
-               free_irq(dev->irq, dev);
        if (devpriv) {
                mite_free_ring(devpriv->ai_mite_ring);
                mite_free_ring(devpriv->ao_mite_ring);
diff --git a/drivers/staging/comedi/drivers/rtd520.c 
b/drivers/staging/comedi/drivers/rtd520.c
index 30a1728..f5ac925 100644
--- a/drivers/staging/comedi/drivers/rtd520.c
+++ b/drivers/staging/comedi/drivers/rtd520.c
@@ -1438,12 +1438,6 @@ static void rtd_detach(struct comedi_device *dev)
                /* Shut down any board ops by resetting it */
                if (devpriv->las0 && devpriv->lcfg)
                        rtd_reset(dev);
-               if (dev->irq) {
-                       writel(readl(devpriv->lcfg + PLX_INTRCS_REG) &
-                               ~(ICS_PLIE | ICS_DMA0_E | ICS_DMA1_E),
-                               devpriv->lcfg + PLX_INTRCS_REG);
-                       free_irq(dev->irq, dev);
-               }
                if (devpriv->las0)
                        iounmap(devpriv->las0);
                if (devpriv->las1)
diff --git a/drivers/staging/comedi/drivers/s626.c 
b/drivers/staging/comedi/drivers/s626.c
index 0cf4b3d..98a1728 100644
--- a/drivers/staging/comedi/drivers/s626.c
+++ b/drivers/staging/comedi/drivers/s626.c
@@ -2735,8 +2735,6 @@ static void s626_detach(struct comedi_device *dev)
                        CloseDMAB(dev, &devpriv->ANABuf, DMABUF_SIZE);
                }
 
-               if (dev->irq)
-                       free_irq(dev->irq, dev);
                if (devpriv->mmio)
                        iounmap(devpriv->mmio);
        }
-- 
1.8.1.4

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to