linux/drivers/staging/comedi
Ian Abbott 3c3bea26ad staging: comedi: check for more errors for zero-length read
If the "read" file operation handler, `comedi_read()` is passed 0 for
the amount to read, some error conditions are currently skipped and the
function just returns 0.  Change it to check those error conditions and
return an error value if appropriate.  The trickiest case is the check
for when the previously set up asynchronous command has terminated with
an error.  In that case, `-EPIPE` is returned (as it is for a read of
non-zero length) and the subdevice gets marked as non-busy.

A zero-length read that returns 0 has no other effects, in particular,
it does not cause the subdevice to be marked as non-busy, and the return
value does not indicate an "end-of-file" condition.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-10-13 10:29:48 -07:00
..
drivers staging: comedi: cb_das16_cs: rename private data member 'status[12]' 2015-10-13 10:26:19 -07:00
kcomedilib staging: comedi: kcomedilib: Fixed coding style issue 2015-09-12 18:24:38 -07:00
comedi_buf.c staging: comedi: add new comedi_buf_write_n_available() 2015-10-13 10:28:40 -07:00
comedi_compat32.c staging: comedi: fix cast warning in comedi_compat32.c 2015-07-14 18:21:15 -07:00
comedi_compat32.h staging: comedi: comedi_compat32.h: reformat copyright comment 2015-01-28 11:19:34 -08:00
comedi_fops.c staging: comedi: check for more errors for zero-length read 2015-10-13 10:29:48 -07:00
comedi_internal.h staging: comedi: add new comedi_buf_write_n_available() 2015-10-13 10:28:40 -07:00
comedi_pci.c staging: comedi: comedi_pci.c: Fix kernel-doc Return tags 2015-10-02 11:43:21 +02:00
comedi_pci.h staging: comedi: comedi_pci.h: move PCI stuff out of comedidev.h 2015-03-20 14:08:18 +01:00
comedi_pcmcia.c staging: comedi: comedi_pcmcia.c: improve function documentation 2015-10-02 11:43:21 +02:00
comedi_pcmcia.h staging: comedi: comedi_pcmcia.h: move PCMCIA stuff out of comedidev.h 2015-02-07 17:05:51 +08:00
comedi_usb.c staging: comedi: comedi_usb.c: improve function documentation 2015-10-02 11:43:21 +02:00
comedi_usb.h staging: comedi: comedi_usb.h: move USB stuff out of comedidev.h 2015-01-28 11:18:51 -08:00
comedi.h Drivers: staging: comedi: comedi: Fixed comment spelling error 2015-05-24 13:11:44 -07:00
comedidev.h staging: comedi: comedidev.h: document remaining inline functions 2015-09-29 03:25:04 +02:00
comedilib.h
drivers.c staging: comedi: drivers.c: document exported functions 2015-09-29 03:20:07 +02:00
Kconfig staging: comedi: aio_aio12_8: hookup 8254 counter/timer 2015-10-13 10:26:06 -07:00
Makefile staging: comedi: split out PCI support into new module 2014-11-07 09:24:33 -08:00
proc.c
range.c staging: comedi: improve comedi_check_chanlist() documentation 2015-08-05 11:55:44 -07:00
TODO