Amit Shah wrote: > The initial_reset sent to chardevs doesn't do much other than setting > a bool to true. Char devices are interested in the open event and > that gets sent whenever the device is opened.
Have you checked with the monitor in all use cases (dedicated & muxed console, stdio & SDL console, etc.)? It was introduced once to fix a corner case, I think it's even documented... Jan > > Moreover, the reset logic breaks as and when qemu's bh scheduling > changes. > > Signed-off-by: Amit Shah <amit.s...@redhat.com> > --- > qemu-char.c | 9 --------- > qemu-char.h | 1 - > vl.c | 1 - > 3 files changed, 0 insertions(+), 11 deletions(-) > > diff --git a/qemu-char.c b/qemu-char.c > index 1f63019..d78bae3 100644 > --- a/qemu-char.c > +++ b/qemu-char.c > @@ -128,15 +128,6 @@ void qemu_chr_reset(CharDriverState *s) > } > } > > -void qemu_chr_initial_reset(void) > -{ > - CharDriverState *chr; > - > - QTAILQ_FOREACH(chr, &chardevs, next) { > - qemu_chr_reset(chr); > - } > -} > - > int qemu_chr_write(CharDriverState *s, const uint8_t *buf, int len) > { > return s->chr_write(s, buf, len); > diff --git a/qemu-char.h b/qemu-char.h > index 05fe15d..b420111 100644 > --- a/qemu-char.h > +++ b/qemu-char.h > @@ -83,7 +83,6 @@ void qemu_chr_add_handlers(CharDriverState *s, > void *opaque); > int qemu_chr_ioctl(CharDriverState *s, int cmd, void *arg); > void qemu_chr_reset(CharDriverState *s); > -void qemu_chr_initial_reset(void); > int qemu_chr_can_read(CharDriverState *s); > void qemu_chr_read(CharDriverState *s, uint8_t *buf, int len); > int qemu_chr_get_msgfd(CharDriverState *s); > diff --git a/vl.c b/vl.c > index e57f58f..5ad4e42 100644 > --- a/vl.c > +++ b/vl.c > @@ -5750,7 +5750,6 @@ int main(int argc, char **argv, char **envp) > } > > text_consoles_set_display(display_state); > - qemu_chr_initial_reset(); > > for (i = 0; i < MAX_MONITOR_DEVICES; i++) { > if (monitor_devices[i] && monitor_hds[i]) {