summaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
authorJohan Hovold2010-08-04 15:45:57 +0200
committerGreg Kroah-Hartman2010-08-10 23:35:45 +0200
commitb58af4066d240b18b43f202e07b9ec7461d90b17 (patch)
treea6f04122c5849383b0981d0a130bdf787788f1fa /drivers/staging
parentUSB: remove fake "address-of" expressions (diff)
downloadkernel-qcow2-linux-b58af4066d240b18b43f202e07b9ec7461d90b17.tar.gz
kernel-qcow2-linux-b58af4066d240b18b43f202e07b9ec7461d90b17.tar.xz
kernel-qcow2-linux-b58af4066d240b18b43f202e07b9ec7461d90b17.zip
USB: serial: fix stalled writes
As David VomLehn points out, it was possible to receive an interrupt before clearing the free-urb flag which could lead to the urb being incorrectly marked as busy. For the same reason, move tx_bytes accounting so that it will never be negative. Note that the free-flags set and clear operations do not need any additional locking as they are manipulated while USB_SERIAL_WRITE_BUSY is set. Reported-by: David VomLehn <dvomlehn@cisco.com> Tested-by: David VomLehn <dvomlehn@cisco.com> Signed-off-by: Johan Hovold <jhovold@gmail.com> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging')
0 files changed, 0 insertions, 0 deletions