summaryrefslogtreecommitdiffstats
path: root/drivers/staging/comedi/drivers/addi_apci_2032.c
diff options
context:
space:
mode:
authorIan Abbott2012-12-03 19:15:42 +0100
committerGreg Kroah-Hartman2013-01-07 23:10:01 +0100
commit6bf9a3babe630a9972b28fd3bb7d2cfcd40e6409 (patch)
tree686a1635578553feeb059aed52e870209d57d400 /drivers/staging/comedi/drivers/addi_apci_2032.c
parentstaging: comedi: addi_apci_2032: correct interrupt subdevice (diff)
downloadkernel-qcow2-linux-6bf9a3babe630a9972b28fd3bb7d2cfcd40e6409.tar.gz
kernel-qcow2-linux-6bf9a3babe630a9972b28fd3bb7d2cfcd40e6409.tar.xz
kernel-qcow2-linux-6bf9a3babe630a9972b28fd3bb7d2cfcd40e6409.zip
staging: comedi: addi_apci_2032: set COMEDI_CB_OVERFLOW
If the call to `comedi_buf_put()` fails in the interrupt routine, set the `COMEDI_CB_OVERFLOW` event flag. Note that the `COMEDI_CB_ERROR` flag will have also been set by `comedi_buf_put()` in this case. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi/drivers/addi_apci_2032.c')
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_2032.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/staging/comedi/drivers/addi_apci_2032.c b/drivers/staging/comedi/drivers/addi_apci_2032.c
index f04f59d33cc7..aeb34dbe02a4 100644
--- a/drivers/staging/comedi/drivers/addi_apci_2032.c
+++ b/drivers/staging/comedi/drivers/addi_apci_2032.c
@@ -248,8 +248,10 @@ static irqreturn_t apci2032_interrupt(int irq, void *d)
s->state = inl(dev->iobase + APCI2032_INT_STATUS_REG);
outl(0x0, dev->iobase + APCI2032_INT_CTRL_REG);
- comedi_buf_put(s->async, s->state);
- s->async->events |= COMEDI_CB_BLOCK | COMEDI_CB_EOS;
+ if (comedi_buf_put(s->async, s->state))
+ s->async->events |= COMEDI_CB_BLOCK | COMEDI_CB_EOS;
+ else
+ s->async->events |= COMEDI_CB_OVERFLOW;
comedi_event(dev, s);
return IRQ_HANDLED;