Laurent Vivier
d791cfcbf9
virtio_console: allocate inbufs in add_port() only if it is needed
...
When we hot unplug a virtserialport and then try to hot plug again,
it fails:
(qemu) chardev-add socket,id=serial0,path=/tmp/serial0,server,nowait
(qemu) device_add virtserialport,bus=virtio-serial0.0,nr=2,\
chardev=serial0,id=serial0,name=serial0
(qemu) device_del serial0
(qemu) device_add virtserialport,bus=virtio-serial0.0,nr=2,\
chardev=serial0,id=serial0,name=serial0
kernel error:
virtio-ports vport2p2: Error allocating inbufs
qemu error:
virtio-serial-bus: Guest failure in adding port 2 for device \
virtio-serial0.0
This happens because buffers for the in_vq are allocated when the port is
added but are not released when the port is unplugged.
They are only released when virtconsole is removed (see a7a69ec0d8 )
To avoid the problem and to be symmetric, we could allocate all the buffers
in init_vqs() as they are released in remove_vqs(), but it sounds like
a waste of memory.
Rather than that, this patch changes add_port() logic to ignore ENOSPC
error in fill_queue(), which means queue has already been filled.
Fixes: a7a69ec0d8 ("virtio_console: free buffers after reset")
Cc: mst@redhat.com
Cc: stable@vger.kernel.org
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2019-11-19 05:13:49 -05:00
..
agp
ia64: remove support for machvecs
2019-08-16 14:32:26 -07:00
hw_random
Revert "hwrng: core - Freeze khwrng thread during suspend"
2019-11-17 08:48:17 +08:00
ipmi
ipmi_si_intf: Fix race in timer shutdown handling
2019-09-12 16:03:18 -05:00
mwave
treewide: Add SPDX license identifier - Makefile/Kconfig
2019-05-21 10:50:46 +02:00
pcmcia
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18
2019-05-21 11:28:46 +02:00
tpm
tpm: Wrap the buffer from the caller to tpm_buf in tpm_send()
2019-09-25 02:43:57 +03:00
xilinx_hwicap
treewide: Add SPDX license identifier - Makefile/Kconfig
2019-05-21 10:50:46 +02:00
xillybus
PCI: Move ASPM declarations to linux/pci.h
2019-08-28 08:28:39 -05:00
adi.c
char: sparc64: Add privileged ADI driver
2018-06-05 11:24:55 -07:00
apm-emulation.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
applicom.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
applicom.h
bsr.c
Merge 5.2-rc4 into char-misc-next
2019-06-09 09:11:21 +02:00
ds1620.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
dsp56k.c
dtlk.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
efirtc.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
hangcheck-timer.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 405
2019-06-05 17:37:13 +02:00
hpet.c
hpet: Fix division by zero in hpet_time_div()
2019-07-25 14:39:51 +02:00
Kconfig
ia64 for v5.4 - big change here is removal of support for SGI Altix
2019-09-16 15:32:01 -07:00
lp.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
Makefile
char: remove the SGI tiocx/mbcs driver
2019-08-16 11:33:56 -07:00
mem.c
Merge branch 'next-lockdown' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
2019-09-28 08:14:15 -07:00
misc.c
char: misc: Move EXPORT_SYMBOL immediately next to the functions/varibles
2019-05-24 18:00:41 +02:00
mspec.c
char/mspec: remove SGI SN2 support
2019-08-16 11:33:56 -07:00
nsc_gpio.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
nvram.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
nwbutton.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
nwbutton.h
nwflash.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
pc8736x_gpio.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
powernv-op-panel.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
ppdev.c
char: ppdev: Fix a possible null-pointer dereference in pp_release()
2019-07-25 13:21:15 +02:00
ps3flash.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 164
2019-05-30 11:26:38 -07:00
random.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-11-16 18:14:32 -08:00
raw.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
rtc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
scx200_gpio.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
sonypi.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61
2019-05-24 17:36:45 +02:00
tb0219.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
2019-05-30 11:26:35 -07:00
tlclk.c
tlclk: clean an indentation issue, remove extraneous tabs
2018-11-11 12:58:27 -08:00
toshiba.c
toshiba: Add correct printk log level while emitting error log
2019-09-04 13:42:43 +02:00
ttyprintk.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 402
2019-06-05 17:37:13 +02:00
uv_mmtimer.c
virtio_console.c
virtio_console: allocate inbufs in add_port() only if it is needed
2019-11-19 05:13:49 -05:00