qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] qemu-char: Fixed the bug lead to dead lock


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH] qemu-char: Fixed the bug lead to dead lock
Date: Fri, 11 Jul 2014 10:07:45 +0100

On 11 July 2014 05:58, Liliang <address@hidden> wrote:
> From: Li Liang <address@hidden>
>
> This bug was introduced in the commit 
> 9005b2a7589540a3733b3abdcfbccfe7746cd1a1,
> it will cause deadlock when create a vm with the parameter "-monitor pty" and
> then try to read from /dev/pts/x.
>
> Signed-off-by: Li Liang <address@hidden>
> ---
>  qemu-char.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/qemu-char.c b/qemu-char.c
> index 55e372c..55cdded 100644
> --- a/qemu-char.c
> +++ b/qemu-char.c
> @@ -1103,9 +1103,11 @@ static gboolean pty_chr_timer(gpointer opaque)
>      s->timer_tag = 0;
>      if (!s->connected) {
>          /* Next poll ... */
> +        qemu_mutex_unlock(&chr->chr_write_lock);
>          pty_chr_update_read_handler_locked(chr);
> +    } else {
> +        qemu_mutex_unlock(&chr->chr_write_lock);
>      }
> -    qemu_mutex_unlock(&chr->chr_write_lock);
>      return FALSE;
>  }

This is clearly not the correct fix -- it is now calling
pty_chr_update_read_handler_locked() without holding
the chr_write_lock mutex, which is not permitted.

thanks
-- PMM



reply via email to

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