Make sure the interrupts are disabled before freeing the irq.

Signed-off-by: H Hartley Sweeten <hswee...@visionengravers.com>
Cc: Ian Abbott <abbo...@mev.co.uk>
Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 drivers/staging/comedi/drivers/ni_660x.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/comedi/drivers/ni_660x.c 
b/drivers/staging/comedi/drivers/ni_660x.c
index 2440cb6..c71dae8 100644
--- a/drivers/staging/comedi/drivers/ni_660x.c
+++ b/drivers/staging/comedi/drivers/ni_660x.c
@@ -1064,8 +1064,10 @@ static void ni_660x_detach(struct comedi_device *dev)
 {
        struct ni_660x_private *devpriv = dev->private;
 
-       if (dev->irq)
+       if (dev->irq) {
+               ni_660x_write(dev, 0, 0, NI660X_GLOBAL_INT_CFG);
                free_irq(dev->irq, dev);
+       }
        if (devpriv) {
                ni_gpct_device_destroy(devpriv->counter_dev);
                ni_660x_free_mite_rings(dev);
-- 
2.6.3

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to