free_irq() should be called on driver 'dt282x' detach.

Signed-off-by: Arvind Yadav <arvind.yadav...@gmail.com>
---
 drivers/staging/comedi/drivers/dt282x.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/staging/comedi/drivers/dt282x.c 
b/drivers/staging/comedi/drivers/dt282x.c
index d5295bb..a132f60 100644
--- a/drivers/staging/comedi/drivers/dt282x.c
+++ b/drivers/staging/comedi/drivers/dt282x.c
@@ -1057,6 +1057,8 @@ static void dt282x_alloc_dma(struct comedi_device *dev,
        if (request_irq(irq_num, dt282x_interrupt, 0, dev->board_name, dev))
                return;
 
+       dev->irq = irq_num;
+
        /* DMA uses two 4K buffers with separate DMA channels */
        devpriv->dma = comedi_isadma_alloc(dev, 2, dma_chan[0], dma_chan[1],
                                           PAGE_SIZE, 0);
@@ -1070,6 +1072,9 @@ static void dt282x_free_dma(struct comedi_device *dev)
 
        if (devpriv)
                comedi_isadma_free(devpriv->dma);
+
+       if (dev->irq)
+               free_irq(dev->irq, dev);
 }
 
 static int dt282x_initialize(struct comedi_device *dev)
-- 
2.7.4

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

Reply via email to