qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH 2/3] char: Remove special init_reset handling


From: Jan Kiszka
Subject: [Qemu-devel] Re: [PATCH 2/3] char: Remove special init_reset handling
Date: Tue, 03 Nov 2009 18:08:57 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

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 <address@hidden>
> ---
>  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]) {





reply via email to

[Prev in Thread] Current Thread [Next in Thread]