kernel-ark/drivers/char
Amit Shah 671bdea2b9 virtio: console: fix race in port_fops_open() and port unplug
Between open() being called and processed, the port can be unplugged.
Check if this happened, and bail out.

A simple test script to reproduce this is:

while true; do for i in $(seq 1 100); do echo $i > /dev/vport0p3; done; done;

This opens and closes the port a lot of times; unplugging the port while
this is happening triggers the bug.

CC: <stable@vger.kernel.org>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2013-07-29 14:43:55 +09:30
..
agp Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2013-07-09 16:04:31 -07:00
hw_random Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-07-13 14:52:21 -07:00
ipmi char: Convert use of typedef ctl_table to struct ctl_table 2013-06-17 16:43:08 -07:00
mwave mwave: fix info leak in mwave_ioctl() 2013-07-09 10:33:28 -07:00
pcmcia Finally eradicate CONFIG_HOTPLUG 2013-06-03 14:20:18 -07:00
tpm tpm/tpm_i2c_infineon: Remove unused header file 2013-06-28 00:47:43 +02:00
xilinx_hwicap char: xilinx_hwicap: Fix typo in comment and extend it 2013-05-30 21:46:16 +09:00
apm-emulation.c
applicom.c applicom: use correct array offset 2013-03-15 12:23:48 -07:00
applicom.h
bfin-otp.c
bsr.c
ds1302.c
ds1620.c ds1620: single_open() leak 2013-05-05 00:11:29 -04: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 rtc: single_open() leaks 2013-05-05 00:12:29 -04:00
generic_nvram.c
genrtc.c rtc: single_open() leaks 2013-05-05 00:12:29 -04:00
hangcheck-timer.c
hpet.c char: Convert use of typedef ctl_table to struct ctl_table 2013-06-17 16:43:08 -07:00
i8k.c
Kconfig stallion: final cleanup 2013-06-03 14:31:39 -07:00
lp.c Char: lp, protect LPGETSTATUS with port_mutex 2013-05-16 18:08:58 -07:00
Makefile
mbcs.c
mbcs.h
mem.c /dev/oldmem: Remove the interface 2013-07-03 16:08:03 -07:00
misc.c Revert "char: misc: assign file->private_data in all cases" 2013-06-26 10:12:48 -07:00
mmtimer.c
msm_smd_pkt.c
mspec.c char: Use vma_pages() to replace (vm_end - vm_start) >> PAGE_SHIFT 2013-05-21 10:07:54 -07:00
nsc_gpio.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
nvram.c
nwbutton.c
nwbutton.h
nwflash.c
pc8736x_gpio.c
ppdev.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
ps3flash.c ps3flash: switch to generic_file_llseek_size() 2013-06-29 12:57:33 +04:00
random.c char: Convert use of typedef ctl_table to struct ctl_table 2013-06-17 16:43:08 -07:00
raw.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
rtc.c char: Convert use of typedef ctl_table to struct ctl_table 2013-06-17 16:43:08 -07:00
scx200_gpio.c
snsc_event.c
snsc.c
snsc.h
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: switch to fixed_size_llseek() 2013-06-29 12:57:51 +04:00
tlclk.c
toshiba.c
ttyprintk.c ttyprintk: Fix NULL pointer deref by setting tty_port ops after initializing port 2013-05-21 10:13:23 -07:00
uv_mmtimer.c
virtio_console.c virtio: console: fix race in port_fops_open() and port unplug 2013-07-29 14:43:55 +09:30