linux/drivers
Johan Hovold d07732a871 USB: serial: fix race in generic write
commit 6f6485463a upstream.

Fix race in generic write implementation, which could lead to
temporarily degraded throughput.

The current generic write implementation introduced by commit
27c7acf220 ("USB: serial: reimplement generic fifo-based writes") has
always had this bug, although it's fairly hard to trigger and the
consequences are not likely to be noticed.

Specifically, a write() on one CPU while the completion handler is
running on another could result in only one of the two write urbs being
utilised to empty the remainder of the write fifo (unless there is a
second write() that doesn't race during that time).

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-01-09 12:24:19 -08:00
..
accessibility
acpi ACPI / hotplug: Fix conflicted PCI bridge notify handlers 2013-12-04 10:57:04 -08:00
amba
ata SCSI: Disable WRITE SAME for RAID and virtual host adapter drivers 2013-12-11 22:36:28 -08:00
atm atm: idt77252: fix dev refcnt leak 2013-12-08 07:29:25 -08:00
auxdisplay
base PM / runtime: Use pm_runtime_put_sync() in __device_release_driver() 2013-12-04 10:56:59 -08:00
bcma bcma: add more core IDs 2013-05-17 14:31:05 -04:00
block xen/blkback: fix reference counting 2013-12-04 10:56:25 -08:00
bluetooth Bluetooth: Add support for BCM20702A0 [0b05, 17cb] 2013-10-13 16:08:32 -07:00
bus
cdrom drivers/cdrom/cdrom.c: use kzalloc() for failing hardware 2013-07-13 11:42:26 -07:00
char drivers/char/i8k.c: add Dell XPLS L421X 2013-12-11 22:36:29 -08:00
clk clk: armada-370: fix tclk frequencies 2013-12-04 10:57:19 -08:00
clocksource clocksource: dw_apb: Fix error check 2013-07-25 14:07:29 -07:00
connector connector: improved unaligned access error fix 2013-12-08 07:29:25 -08:00
cpufreq cpufreq: highbank-cpufreq: Enable Midway/ECX-2000 2013-12-04 10:57:18 -08:00
cpuidle cpuidle: coupled: fix race condition between pokes and safe state 2013-09-26 17:18:02 -07:00
crypto crypto: caam - Fixed the memory out of bound overwrite issue 2013-08-04 16:50:57 +08:00
dca
devfreq
dio
dma ioatdma: fix selection of 16 vs 8 source path 2013-12-04 10:56:45 -08:00
edac edac, highbank: Fix interrupt setup of mem and l2 controller 2013-12-04 10:57:15 -08:00
eisa
extcon
firewire SCSI: Disable WRITE SAME for RAID and virtual host adapter drivers 2013-12-11 22:36:28 -08:00
firmware dmi: add support for exact DMI matches in addition to substring matching 2013-11-29 11:11:53 -08:00
gpio powerpc/gpio: Fix the wrong GPIO input data on MPC8572/MPC8536 2013-12-11 22:36:27 -08:00
gpu drm/radeon: fixup bad vram size on SI 2013-12-20 07:45:10 -08:00
hid HID: usbhid: quirk for SiS Touchscreen 2013-12-11 22:36:28 -08:00
hsi
hv Drivers: hv: balloon: Do not post pressure status if interrupted 2013-08-04 16:50:58 +08:00
hwmon hwmon: (w83l768ng) Fix fan speed control range 2013-12-20 07:45:08 -08:00
hwspinlock
i2c i2c: mux: gpio: use gpio_set_value_cansleep() 2013-12-04 10:55:50 -08:00
ide
idle sched, idle: Fix the idle polling state logic 2013-11-29 11:11:42 -08:00
iio iio:accel:kxsd9 fix missing mutex unlock 2013-12-04 10:57:16 -08:00
infiniband IB/srp: Report receive errors correctly 2013-12-04 10:56:17 -08:00
input Input: usbtouchscreen - separate report and transmit buffer size handling 2013-12-20 07:45:08 -08:00
iommu iommu: Remove stack trace from broken irq remapping warning 2013-12-08 07:29:27 -08:00
ipack
irqchip ARM: SoC fixes for 3.10-rc 2013-06-22 09:44:45 -10:00
isdn net: rework recvmsg handler msg_name and msg_namelen logic 2013-12-08 07:29:25 -08:00
leds leds: wm831x-status: Request a REG resource 2013-09-26 17:18:27 -07:00
lguest
macintosh powerpc/windfarm: Fix noisy slots-fan on Xserve (rm31) 2013-08-11 18:35:20 -07:00
mailbox
md dm thin: switch to read only mode if a mapping insert fails 2013-12-20 07:45:11 -08:00
media cxd2820r_core: fix sparse warnings 2013-12-20 07:45:11 -08:00
memory drivers/memory: don't check resource with devm_ioremap_resource 2013-05-18 11:55:52 +02:00
memstick
message
mfd mfd: tps6586x: correct device name of the regulator cell 2013-06-24 12:37:47 +01:00
misc mei: add 9 series PCH mei device ids 2013-12-11 22:36:28 -08:00
mmc mmc: block: fix a bug of error handling in MMC driver 2013-12-08 07:29:27 -08:00
mtd mtd: gpmi: fix kernel BUG due to racing DMA operations 2013-12-04 10:56:23 -08:00
net igb: Fix for issue where values could be too high for udelay function. 2013-12-20 07:45:09 -08:00
nfc NFC: mei: Do not disable MEI devices from their remove routine 2013-05-21 10:48:41 +02:00
ntb NTB: Correct debugfs to work with more than 1 NTB Device 2013-11-13 12:05:35 +09:00
nubus
of of: Fix missing memory initialization on FDT unflattening 2013-09-26 17:18:29 -07:00
oprofile
parisc parisc: Fix interrupt routing for C8000 serial ports 2013-08-11 18:35:21 -07:00
parport parisc: parport0: fix this legacy no-device port driver! 2013-06-01 14:46:42 +02:00
pci PCI: Disable Bus Master only on kexec reboot 2013-12-20 07:45:08 -08:00
pcmcia pcmcia: at91_cf: fix gpio_get_value in at91_cf_get_status 2013-07-21 18:21:25 -07:00
pinctrl pinctrl: dove: unset twsi option3 for gconfig as well 2013-12-04 10:55:49 -08:00
platform drivers/platform/olpc/olpc-ec.c: initialise earlier 2013-08-29 09:47:38 -07:00
pnp
power charger-manager: Ensure event is not used as format string 2013-07-13 11:42:26 -07:00
pps
ps3
ptp ptp_pch: fix error handling in pch_probe() 2013-05-25 21:24:15 -07:00
pwm drivers/pwm: don't check resource with devm_ioremap_resource 2013-05-18 11:55:58 +02:00
rapidio RAPIDIO: IDT_GEN2: Fix build error. 2013-07-28 16:30:07 -07:00
regulator mfd: tps6586x: correct device name of the regulator cell 2013-06-24 12:37:47 +01:00
remoteproc
reset
rpmsg
rtc drivers/rtc/rtc-at91rm9200.c: correct alarm over day/month wrap 2013-12-20 07:45:09 -08:00
s390 qeth: avoid buffer overflow in snmp ioctl 2013-12-04 10:56:37 -08:00
sbus
scsi SCSI: Disable WRITE SAME for RAID and virtual host adapter drivers 2013-12-11 22:36:28 -08:00
sfi
sh
sn
spi spi: spi-davinci: Fix direction in dma_map_single() 2013-08-11 18:35:25 -07:00
ssb
ssbi
staging staging: comedi: ssv_dnp: use comedi_dio_update_state() 2013-12-20 07:45:11 -08:00
target iscsi-target: chap auth shouldn't match username with trailing garbage 2013-12-04 10:56:15 -08:00
tc
thermal drivers/thermal: don't check resource with devm_ioremap_resource 2013-05-18 11:57:30 +02:00
tty serial: vt8500: add missing braces 2013-11-04 04:31:06 -08:00
uio Fix a few incorrectly checked [io_]remap_pfn_range() calls 2013-11-13 12:05:33 +09:00
usb USB: serial: fix race in generic write 2014-01-09 12:24:19 -08:00
uwb
vfio vfio: fix crash on rmmod 2013-06-05 08:54:16 -06:00
vhost vhost/scsi: Fix incorrect usage of get_user_pages_fast write parameter 2013-11-13 12:05:32 +09:00
video video: kyro: fix incorrect sizes when copying to userspace 2013-12-08 07:29:27 -08:00
virt
virtio virtio: support unlocked queue poll 2013-07-28 16:29:55 -07:00
vlynq
vme
w1 drivers/w1/masters: don't check resource with devm_ioremap_resource 2013-05-18 11:58:03 +02:00
watchdog sc1200_wdt: Fix oops 2013-12-20 07:45:11 -08:00
xen xen/gnttab: leave lazy MMU mode in the case of a m2p override failure 2013-12-11 22:36:27 -08:00
zorro
Kconfig
Makefile