linux/drivers/staging
Ian Abbott 69acbaac30 staging: comedi: COMEDI_CANCEL ioctl should wake up read/write
Comedi devices can do blocking read() or write() (or poll()) if an
asynchronous command has been set up, blocking for data (for read()) or
buffer space (for write()).  Various events associated with the
asynchronous command will wake up the blocked reader or writer (or
poller).  It is also possible to force the asynchronous command to
terminate by issuing a `COMEDI_CANCEL` ioctl.  That shuts down the
asynchronous command, but does not currently wake up the blocked reader
or writer (or poller).  If the blocked task could be woken up, it would
see that the command is no longer active and return.  The caller of the
`COMEDI_CANCEL` ioctl could attempt to wake up the blocked task by
sending a signal, but that's a nasty workaround.

Change `do_cancel_ioctl()` to wake up the wait queue after it returns
from `do_cancel()`.  `do_cancel()` can propagate an error return value
from the low-level comedi driver's cancel routine, but it always shuts
the command down regardless, so `do_cancel_ioctl()` can wake up he wait
queue regardless of the return value from `do_cancel()`.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-23 14:30:54 -07:00
..
android Merge branch 'akpm' (updates from Andrew Morton) 2013-07-03 17:12:13 -07:00
asus_oled staging/asus_oled fixed linebreak and printk issue 2013-06-05 15:29:07 -07:00
bcm Staging: bcm: fix checkpatch errors and warnings in Version.h 2013-05-21 19:59:50 -07:00
btmtk_usb staging: btmtk_usb: use GFP_KERNEL inplace of GFP_ATOMIC in _probe path 2013-06-03 12:35:53 -07:00
ced1401 Staging: ced1401: Staticize local symbols 2013-05-22 15:31:39 -07:00
comedi staging: comedi: COMEDI_CANCEL ioctl should wake up read/write 2013-07-23 14:30:54 -07:00
cptm1217
crystalhd Staging: crystalhd: remove an unneeded NULL check 2013-06-03 12:26:18 -07:00
cxt1e1 Staging/cxt1e1:Removing parantheses surrounding return argument 2013-05-22 15:28:30 -07:00
dgrp drivers: avoid format string in dev_set_name 2013-07-03 16:07:41 -07:00
dwc2 staging: dwc2: fix thinko in dwc2_hc_set_even_odd_frame() 2013-06-24 15:56:10 -07:00
echo
et131x
frontier staging: frontier: Fix typo in staging/frontier 2013-06-24 15:56:09 -07:00
ft1000 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-07-09 18:24:39 -07:00
fwserial IEEE 1394 (FireWire) subsystem changes post v3.10: 2013-07-10 11:02:58 -07:00
gdm72xx staging: gdm72xx: fix typos in Kconfig 2013-06-05 15:31:16 -07:00
goldfish staging/goldfish: Fixed up incorrect formatted comments. 2013-05-21 10:30:10 -07:00
iio iio staging: fix lis3l02dq, read error handling 2013-07-09 22:11:53 +01:00
imx-drm Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2013-07-09 16:04:31 -07:00
keucr staging: keucr: removed unnecessary variables and comments 2013-06-17 14:46:18 -07:00
line6 staging: line6: Fix unlocked snd_pcm_stop() call 2013-07-15 21:25:14 +02:00
lustre mode_t whack-a-mole... 2013-07-06 23:04:23 +04:00
media Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2013-07-13 12:09:57 -07:00
netlogic staging: netlogic: Fix typo in staging/netlogic 2013-06-24 15:56:09 -07:00
nvec staging: nvec: move device tree parsing to its own function 2013-06-24 15:59:03 -07:00
octeon MIPS: OCTEON: Rename Kconfig CAVIUM_OCTEON_REFERENCE_BOARD to CAVIUM_OCTEON_SOC 2013-06-10 18:01:25 +02:00
octeon-usb staging: octeon-usb: octeon-hcd: eliminate printk()s 2013-06-18 11:17:04 -07:00
olpc_dcon
ozwpan staging: ozwpan: remove event tracing code. 2013-06-17 14:48:12 -07:00
panel
phison
quickstart
rtl8187se staging/rtl8187se: Convert __list_for_each use to list_for_each 2013-06-18 11:22:58 -07:00
rtl8192e Staging: rtl8192e: fix an endian bug 2013-05-30 20:46:29 +09:00
rtl8192u Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-07-09 18:24:39 -07:00
rtl8712 drivers: avoid parsing names as kthread_run() format strings 2013-07-03 16:07:41 -07:00
rts5139 staging: rts5139: Use correct USB transfer interval to fix syslog spamming 2013-06-03 12:15:34 -07:00
sb105x
sbe-2t3e3
sep
serqt_usb2 Staging tree merge for 3.11-rc1 2013-07-02 11:40:23 -07:00
silicom Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-07-09 18:24:39 -07:00
slicoss
sm7xxfb
speakup staging: speakup: fix warnings by adding __user annotations 2013-05-22 15:35:52 -07:00
ste_rmi4
tidspbridge clean up scary strncpy(dst, src, strlen(src)) uses 2013-07-03 16:07:41 -07:00
usbip
vme
vt6655 Staging: vt6655: aes_ccmp: fixed a brace coding style 2013-06-24 15:57:40 -07:00
vt6656 staging: vt6656: mac.c MACvDisableKeyEntry remove dead code wOffset 2013-06-17 14:55:32 -07:00
winbond Staging: winbond: Check for unsuccessful allocation immediately 2013-06-03 12:32:00 -07:00
wlags49_h2
wlags49_h25
wlan-ng
xgifb staging: xgifb: vb_setmode: delete IF_DEF_CRT2Monitor checks 2013-05-30 20:55:53 +09:00
zcache drivers: staging: zcache: fix compile error 2013-05-30 21:14:30 +09:00
zram zram: allow request end to coincide with disksize 2013-06-24 16:08:32 -07:00
zsmalloc staging/zsmalloc: Fixed up incorrect formatted comments 2013-05-21 10:30:10 -07:00
Kconfig staging: csr: remove driver 2013-07-16 22:37:09 -07:00
Makefile staging: csr: remove driver 2013-07-16 22:37:09 -07:00
staging.c