kernel-fxtec-pro1x/drivers/char
Amit Shah 9ba5c80b1a virtio: console: add locking around c_ovq operations
When multiple ovq operations are being performed (lots of open/close
operations on virtio_console fds), the __send_control_msg() function can
get confused without locking.

A simple recipe to cause badness is:
* create a QEMU VM with two virtio-serial ports
* in the guest, do
  while true;do echo abc >/dev/vport0p1;done
  while true;do echo edf >/dev/vport0p2;done

In one run, this caused a panic in __send_control_msg().  In another, I
got

   virtio_console virtio0: control-o:id 0 is not a head!

This also results repeated messages similar to these on the host:

  qemu-kvm: virtio-serial-bus: Unexpected port id 478762112 for device virtio-serial-bus.0
  qemu-kvm: virtio-serial-bus: Unexpected port id 478762368 for device virtio-serial-bus.0

Reported-by: FuXiangChun <xfu@redhat.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
Reviewed-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
Reviewed-by: Asias He <asias@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: stable@kernel.org
2013-03-30 14:25:46 +10:30
..
agp drm/i915: Disable WC PTE updates to w/a buggy IOMMU on ILK 2013-02-20 00:21:49 +01:00
hw_random hw_random: free rng_buffer at module exit 2013-03-20 11:29:37 +10:30
ipmi ipmi: add options to disable openfirmware and PCI scanning 2013-02-27 19:10:21 -08:00
mwave 8250: three way resolve of the 8250 diffs 2012-07-17 09:11:50 -07:00
pcmcia Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
tpm tpm/ibmvtpm: build only when IBM pseries is configured 2013-02-14 09:36:50 -06:00
xilinx_hwicap char: remove use of __devexit 2012-11-21 12:55:19 -08:00
apm-emulation.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/apm 2012-04-05 17:34:30 -07:00
applicom.c
applicom.h
bfin-otp.c
bsr.c powerpc/BSR: cleanup the error path of bsr_init 2012-07-17 10:27:38 -07:00
ds1302.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ds1620.c ARM: footbridge: nw_gpio_lock is raw_spin_lock 2012-10-07 10:33:12 +02:00
dsp56k.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
dtlk.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
efirtc.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
generic_nvram.c
genrtc.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
hangcheck-timer.c
hpet.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
i8k.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
Kconfig tty: Added a CONFIG_TTY option to allow removal of TTY 2013-01-18 16:15:27 -08:00
lp.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
Makefile IPMI: Change link order 2012-10-16 18:07:12 -07:00
mbcs.c char: remove use of __devinitconst 2012-11-21 12:55:19 -08:00
mbcs.h
mem.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
misc.c drivers/char/misc.c:misc_register(): do not loop on misc_list unconditionally 2013-02-27 19:10:21 -08:00
mmtimer.c drivers/char/mmtimer.c: Remove useless kfree 2012-09-26 13:20:40 -07:00
msm_smd_pkt.c drivers/char/msm_smd_pkt.c: don't use IS_ERR() 2011-08-25 16:25:33 -07:00
mspec.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
nsc_gpio.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
nvram.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
nwbutton.c drivers/char: removes unnecessary semicolon 2012-09-26 13:20:39 -07:00
nwbutton.h
nwflash.c Merge branch 'late/fixes' into fixes 2012-10-07 07:22:32 -07:00
pc8736x_gpio.c pc8736x_gpio: use platform_device_unregister in pc8736x_gpio_cleanup() 2012-10-24 15:52:29 -07:00
ppdev.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
ps3flash.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
random.c locking: Various static lock initializer fixes 2013-02-19 08:42:45 +01:00
raw.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
rtc.c drivers/char: removes unnecessary semicolon 2012-09-26 13:20:39 -07:00
scx200_gpio.c
snsc.c
snsc.h
snsc_event.c
sonypi.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
tb0219.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
tile-srom.c tile-srom.c driver: minor code cleanup 2012-04-02 12:14:10 -04:00
tlclk.c drivers/char/tlclk.c: fix error return code 2012-08-16 10:09:15 -07:00
toshiba.c
ttyprintk.c TTY: call tty_port_destroy in the rest of drivers 2012-11-15 17:20:58 -08:00
uv_mmtimer.c
virtio_console.c virtio: console: add locking around c_ovq operations 2013-03-30 14:25:46 +10:30