From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:47429) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UKTbb-00074H-7p for qemu-devel@nongnu.org; Tue, 26 Mar 2013 09:08:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UKTbY-0004jG-Up for qemu-devel@nongnu.org; Tue, 26 Mar 2013 09:07:59 -0400 Received: from mail-qa0-f44.google.com ([209.85.216.44]:41726) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UKTbY-0004jC-PX for qemu-devel@nongnu.org; Tue, 26 Mar 2013 09:07:56 -0400 Received: by mail-qa0-f44.google.com with SMTP id o13so234402qaj.10 for ; Tue, 26 Mar 2013 06:07:56 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <51519DA6.3070306@redhat.com> Date: Tue, 26 Mar 2013 14:07:50 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1364292483-16564-1-git-send-email-hdegoede@redhat.com> <1364292483-16564-8-git-send-email-hdegoede@redhat.com> In-Reply-To: <1364292483-16564-8-git-send-email-hdegoede@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 07/11] qemu-char: Move incrementing of avail_connections to qdev-properties-system List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Hans de Goede Cc: Amit Shah , qemu-devel@nongnu.org, Gerd Hoffmann Il 26/03/2013 11:07, Hans de Goede ha scritto: > The decrement of avail_connections is done in qdev-properties-system move > the increment there too for proper balancing of the calls. > > Signed-off-by: Hans de Goede > --- > hw/qdev-properties-system.c | 6 ++++-- > qemu-char.c | 2 -- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/hw/qdev-properties-system.c b/hw/qdev-properties-system.c > index 8795144..12a87d5 100644 > --- a/hw/qdev-properties-system.c > +++ b/hw/qdev-properties-system.c > @@ -136,9 +136,11 @@ static void release_chr(Object *obj, const char *name, void *opaque) > DeviceState *dev = DEVICE(obj); > Property *prop = opaque; > CharDriverState **ptr = qdev_get_prop_ptr(dev, prop); > + CharDriverState *chr = *ptr; > > - if (*ptr) { > - qemu_chr_add_handlers(*ptr, NULL, NULL, NULL, NULL); > + if (chr) { > + qemu_chr_add_handlers(chr, NULL, NULL, NULL, NULL); > + ++chr->avail_connections; > } > } > > diff --git a/qemu-char.c b/qemu-char.c > index 8a66627..368e7f5 100644 > --- a/qemu-char.c > +++ b/qemu-char.c > @@ -197,8 +197,6 @@ void qemu_chr_add_handlers(CharDriverState *s, > int fe_open; > > if (!opaque && !fd_can_read && !fd_read && !fd_event) { > - /* chr driver being released. */ > - ++s->avail_connections; > fe_open = 0; > } else { > fe_open = 1; > I think this is still wrong (though better than before this patch). This is still not giving an error: qemu-kvm \ -chardev stdio,id=foo -device isa-serial,chardev=foo \ -mon chardev=foo because other users of -chardev (monitor and rng-egd), are not decrementing avail_connections. Can you look at it in a follow-up? Paolo