Amit Shah <amit.s...@redhat.com> 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 <b...@redhat.com> > Signed-off-by: Amit Shah <amit.s...@redhat.com>
> @@ -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.