qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Re: [PATCH 7/7] char: Prevent multiple devices opening same


From: Juan Quintela
Subject: [Qemu-devel] Re: [PATCH 7/7] char: Prevent multiple devices opening same chardev
Date: Wed, 23 Mar 2011 14:32:44 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux)

Amit Shah <address@hidden> wrote:
> Prevent:
>
> -chardev socket,path=/tmp/foo,server,nowait,id=c0 \
> -device virtserialport,chardev=c0,id=vs0 \
> -device virtserialport,chardev=c0,id=vs1
>
> Reported-by: Mike Cao <address@hidden>
> Signed-off-by: Amit Shah <address@hidden>

> @@ -197,6 +197,10 @@ void qemu_chr_add_handlers(CharDriverState *s,
>                             IOEventHandler *fd_event,
>                             void *opaque)
>  {
> +    if (!opaque) {
> +        /* chr driver being released. */
> +        s->assigned = 0;
> +    }
>      s->chr_can_read = fd_can_read;
>      s->chr_read = fd_read;
>      s->chr_event = fd_event;

I preffer to decide that a handler is empty when fd_can_read/fd_read and
fd_event are all NULL, and don't take into account the opaque handler.

This covers the case where opaque is NULL because state is implicit on
the other functions.

Later, Juan.



reply via email to

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