aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/comedi/drivers/ni_mio_common.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/staging/comedi/drivers/ni_mio_common.c b/drivers/staging/comedi/drivers/ni_mio_common.c
index 87995da00f61..4bbb9798af7e 100644
--- a/drivers/staging/comedi/drivers/ni_mio_common.c
+++ b/drivers/staging/comedi/drivers/ni_mio_common.c
@@ -1766,20 +1766,18 @@ static int ni_ai_reset(struct comedi_device *dev, struct comedi_subdevice *s)
1766 1766
1767static int ni_ai_poll(struct comedi_device *dev, struct comedi_subdevice *s) 1767static int ni_ai_poll(struct comedi_device *dev, struct comedi_subdevice *s)
1768{ 1768{
1769 unsigned long flags = 0; 1769 unsigned long flags;
1770 int count; 1770 int count;
1771 1771
1772 /* lock to avoid race with interrupt handler */ 1772 /* lock to avoid race with interrupt handler */
1773 if (in_interrupt() == 0) 1773 spin_lock_irqsave(&dev->spinlock, flags);
1774 spin_lock_irqsave(&dev->spinlock, flags);
1775#ifndef PCIDMA 1774#ifndef PCIDMA
1776 ni_handle_fifo_dregs(dev); 1775 ni_handle_fifo_dregs(dev);
1777#else 1776#else
1778 ni_sync_ai_dma(dev); 1777 ni_sync_ai_dma(dev);
1779#endif 1778#endif
1780 count = s->async->buf_write_count - s->async->buf_read_count; 1779 count = s->async->buf_write_count - s->async->buf_read_count;
1781 if (in_interrupt() == 0) 1780 spin_unlock_irqrestore(&dev->spinlock, flags);
1782 spin_unlock_irqrestore(&dev->spinlock, flags);
1783 1781
1784 return count; 1782 return count;
1785} 1783}