linux/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 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: use correct array offset 2013-03-15 12:23:48 -07:00
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 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 drivers: fix up various ->llseek() implementations 2011-07-20 20:47:58 -04:00
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 module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
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 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 Fix common misspellings 2011-03-31 11:26:23 -03:00
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 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 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 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 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 headers: kobject.h redux 2011-01-10 08:51:44 -08:00
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 drivers/char/tlclk.c: fix error return code 2012-08-16 10:09:15 -07:00
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 BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
virtio_console.c virtio: console: fix race in port_fops_open() and port unplug 2013-07-29 14:43:55 +09:30