On Tue, 06/03 18:39, Paolo Bonzini wrote:
> Make the mux always go through qemu_chr_fe_write, so that we'll get
> the mutex for the underlying chardev.
> 
> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>

Reviewed-by: Fam Zheng <f...@redhat.com>

> ---
>  qemu-char.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/qemu-char.c b/qemu-char.c
> index 3df5db7..2bda2fb 100644
> --- a/qemu-char.c
> +++ b/qemu-char.c
> @@ -279,7 +279,7 @@ static int mux_chr_write(CharDriverState *chr, const 
> uint8_t *buf, int len)
>      MuxDriver *d = chr->opaque;
>      int ret;
>      if (!d->timestamps) {
> -        ret = d->drv->chr_write(d->drv, buf, len);
> +        ret = qemu_chr_fe_write(d->drv, buf, len);
>      } else {
>          int i;
>  
> @@ -301,10 +301,10 @@ static int mux_chr_write(CharDriverState *chr, const 
> uint8_t *buf, int len)
>                           (secs / 60) % 60,
>                           secs % 60,
>                           (int)(ti % 1000));
> -                d->drv->chr_write(d->drv, (uint8_t *)buf1, strlen(buf1));
> +                qemu_chr_fe_write(d->drv, (uint8_t *)buf1, strlen(buf1));
>                  d->linestart = 0;
>              }
> -            ret += d->drv->chr_write(d->drv, buf+i, 1);
> +            ret += qemu_chr_fe_write(d->drv, buf+i, 1);
>              if (buf[i] == '\n') {
>                  d->linestart = 1;
>              }
> @@ -339,13 +339,13 @@ static void mux_print_help(CharDriverState *chr)
>                   "\n\rEscape-Char set to Ascii: 0x%02x\n\r\n\r",
>                   term_escape_char);
>      }
> -    chr->chr_write(chr, (uint8_t *)cbuf, strlen(cbuf));
> +    qemu_chr_fe_write(chr, (uint8_t *)cbuf, strlen(cbuf));
>      for (i = 0; mux_help[i] != NULL; i++) {
>          for (j=0; mux_help[i][j] != '\0'; j++) {
>              if (mux_help[i][j] == '%')
> -                chr->chr_write(chr, (uint8_t *)ebuf, strlen(ebuf));
> +                qemu_chr_fe_write(chr, (uint8_t *)ebuf, strlen(ebuf));
>              else
> -                chr->chr_write(chr, (uint8_t *)&mux_help[i][j], 1);
> +                qemu_chr_fe_write(chr, (uint8_t *)&mux_help[i][j], 1);
>          }
>      }
>  }
> @@ -370,7 +370,7 @@ static int mux_proc_byte(CharDriverState *chr, MuxDriver 
> *d, int ch)
>          case 'x':
>              {
>                   const char *term =  "QEMU: Terminated\n\r";
> -                 chr->chr_write(chr,(uint8_t *)term,strlen(term));
> +                 qemu_chr_fe_write(chr, (uint8_t *)term, strlen(term));
>                   exit(0);
>                   break;
>              }
> -- 
> 1.8.3.1
> 
> 

Reply via email to