linux/drivers/usb/class
Ben Hutchings 711c68b3c0 cdc-wdm: Fix more races on the read path
We must not allow the input buffer length to change while we're
shuffling the buffer contents.  We also mustn't clear the WDM_READ
flag after more data might have arrived.  Therefore move both of these
into the spinlocked region at the bottom of wdm_read().

When reading desc->length without holding the iuspin lock, use
ACCESS_ONCE() to ensure the compiler doesn't re-read it with
inconsistent results.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Tested-by: Bjørn Mork <bjorn@mork.no>
Cc: Oliver Neukum <oliver@neukum.org>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-02-24 13:11:56 -08:00
..
cdc-acm.c Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb 2012-01-09 12:09:47 -08:00
cdc-acm.h USB: cdc-acm: Fix potential deadlock (lockdep warning) 2011-12-09 16:18:18 -08:00
cdc-wdm.c cdc-wdm: Fix more races on the read path 2012-02-24 13:11:56 -08:00
Kconfig USB: add USB test and measurement class driver 2008-10-17 14:40:51 -07:00
Makefile USB: add USB test and measurement class driver 2008-10-17 14:40:51 -07:00
usblp.c Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-01-08 12:19:57 -08:00
usbtmc.c USB: convert drivers/usb/* to use module_usb_driver() 2011-11-18 09:34:02 -08:00