qemu/system
Peter Maydell e2a12fa4e7 system/vl.c: Fix handling of '-serial none -serial something'
Currently if the user passes multiple -serial options on the command
line, we mostly treat those as applying to the different serial
devices in order, so that for example
 -serial stdio -serial file:filename
will connect the first serial port to stdio and the second to the
named file.

The exception to this is the '-serial none' serial device type.  This
means "don't allocate this serial device", but a bug means that
following -serial options are not correctly handled, so that
 -serial none -serial stdio
has the unexpected effect that stdio is connected to the first serial
port, not the second.

This is a very long-standing bug that dates back at least as far as
commit 998bbd74b9 from 2009.

Make the 'none' serial type move forward in the indexing of serial
devices like all the other serial types, so that any subsequent
-serial options are correctly handled.

Note that if your commandline mistakenly had a '-serial none' that
was being overridden by a following '-serial something' option, you
should delete the unnecessary '-serial none'.  This will give you the
same behaviour as before, on QEMU versions both with and without this
bug fix.

Cc: qemu-stable@nongnu.org
Reported-by: Bohdan Kostiv <bohdan.kostiv@tii.ae>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20240122163607.459769-2-peter.maydell@linaro.org
Fixes: 998bbd74b9 ("default devices: core code & serial lines")
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
(cherry picked from commit d2019a9d0c)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-02-09 10:44:49 +03:00
..
arch_init.c
async-teardown.c
balloon.c balloon: Fix a misleading error message 2023-11-17 10:07:52 +01:00
bootdevice.c
cpu-throttle.c
cpu-timers.c
cpus.c system/cpus: Fix CPUState.nr_cores' calculation 2023-11-07 13:08:48 +01:00
datadir.c
device_tree.c
dirtylimit.c system/dirtylimit: Drop the reduplicative check 2023-11-03 07:48:25 +01:00
dma-helpers.c
globals.c
ioport.c
main.c softmmu: pass the main loop status to gdb "Wxx" packet 2023-10-12 12:33:24 +10:00
memory_mapping.c memory: follow Error API guidelines 2023-10-19 23:13:27 +02:00
memory.c system/memory: use ldn_he_p/stn_he_p 2023-12-04 16:21:00 +01:00
meson.build
physmem.c coverity: physmem: use simple assertions instead of modelling 2023-11-24 12:07:47 +01:00
qdev-monitor.c Add virtio-sound-pci device 2023-11-07 03:39:10 -05:00
qemu-seccomp.c
qtest.c system/qtest: Clean up global variable shadowing in qtest_server_init() 2023-10-27 09:39:08 +02:00
rtc.c
runstate-action.c
runstate-hmp-cmds.c
runstate.c softmmu: pass the main loop status to gdb "Wxx" packet 2023-10-12 12:33:24 +10:00
tpm-hmp-cmds.c
tpm.c
trace-events
trace.h
vl.c system/vl.c: Fix handling of '-serial none -serial something' 2024-02-09 10:44:49 +03:00
watchpoint.c accel/tcg: Remove CF_LAST_IO 2023-11-14 10:40:54 -08:00