qemu/include/sysemu
Michael Roth 7b7ab18d0b chardev: fix CHR_EVENT_OPENED events for mux chardevs
As of bd5c51ee6c, chardevs no longer use
bottom-halves to issue CHR_EVENT_OPENED events. To maintain past
semantics, we instead defer the CHR_EVENT_OPENED events toward the end
of chardev initialization.

For muxes, this isn't good enough, since a range of FEs must be able
to attach to the mux prior to any CHR_EVENT_OPENED being issued, else
each FE will immediately print it's initial output (prompts, banners,
etc.) just prior to us switching to the next FE as part of
initialization.

The is new and confusing behavior for users, as they'll see output for
things like the HMP monitor, even though their the current mux focus
may be a guest serial port with potentially no output.

We fix this by further deferring CHR_EVENT_OPENED events for FEs
associated with muxes until after machine init by flagging mux chardevs
with 'explicit_be_open', which suppresses emission of CHR_EVENT_OPENED
events until we explicitly set the mux as opened later.

Currently, we must defer till after machine init since we potentially
associate FEs with muxes as part of realize (for instance,
serial_isa_realizefn).

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Message-id: 1375207462-8141-1-git-send-email-mdroth@linux.vnet.ibm.com
Cc: qemu-stable@nongnu.org
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-07-30 18:48:21 -05:00
..
arch_init.h audio: look for the ISA and PCI buses 2013-04-29 12:16:57 -05:00
balloon.h softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
blockdev.h blockdev: Keep a copy of DriveInfo.serial 2013-03-15 16:07:49 +01:00
bt.h sysemu: avoid proliferation of include/ subdirectories 2013-04-15 18:19:25 +02:00
char.h chardev: fix CHR_EVENT_OPENED events for mux chardevs 2013-07-30 18:48:21 -05:00
cpus.h cpus.c: Drop unnecessary set_cpu_log() 2013-02-16 10:45:19 +00:00
device_tree.h device_tree: Add qemu_devtree_setprop_sized_cells() utility functions 2013-07-19 12:58:46 +01:00
dma.h dma: keep a device alive while it has SGLists 2013-07-04 17:42:30 +02:00
dump.h cpu: Move cpu_write_elfXX_note() functions to CPUState 2013-05-01 13:04:19 +02:00
kvm.h kvm: Change prototype of kvm_update_guest_debug() 2013-07-26 23:05:31 +02:00
memory_mapping.h memory_mapping: Improve qemu_get_guest_memory_mapping() error reporting 2013-06-11 19:38:13 +02:00
os-posix.h Add option to mlock qemu and guest memory 2013-04-22 08:52:23 -05:00
os-win32.h Add option to mlock qemu and guest memory 2013-04-22 08:52:23 -05:00
qtest.h accel: change {xen, kvm, tcg, qtest}_allowed from int to bool 2013-02-01 15:08:02 -06:00
rng-random.h sysemu: avoid proliferation of include/ subdirectories 2013-04-15 18:19:25 +02:00
rng.h Trivial grammar and spelling fixes 2013-05-01 20:55:21 +04:00
seccomp.h softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
sysemu.h cpus: Add return value for vm_stop() 2013-07-15 09:51:38 +02:00
tpm_backend_int.h tpm: reorganize headers and split hardware part 2013-04-15 18:19:25 +02:00
tpm_backend.h Move TPM passthrough specific command line options to backend structure 2013-04-23 10:40:40 -05:00
tpm.h tpm: reorganize headers and split hardware part 2013-04-15 18:19:25 +02:00
watchdog.h hw: move headers to include/ 2013-04-08 18:13:10 +02:00
xen-mapcache.h softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00