[Qemu-devel] [PATCH v4 03/29] chardev: unref if underlying chardev has no parent

Marc-André Lureau posted 29 patches 7 years, 3 months ago
There is a newer version of this series
[Qemu-devel] [PATCH v4 03/29] chardev: unref if underlying chardev has no parent
Posted by Marc-André Lureau 7 years, 3 months ago
It's possible to write code creating a chardev backend that is not
registered. When it is not user-created, it makes sense to keep it
hidden. Let the associated frontend destroy it also in this case.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 chardev/char-fe.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/chardev/char-fe.c b/chardev/char-fe.c
index f158f158f8..a8931f7afd 100644
--- a/chardev/char-fe.c
+++ b/chardev/char-fe.c
@@ -235,7 +235,12 @@ void qemu_chr_fe_deinit(CharBackend *b, bool del)
             d->backends[b->tag] = NULL;
         }
         if (del) {
-            object_unparent(OBJECT(b->chr));
+            Object *obj = OBJECT(b->chr);
+            if (obj->parent) {
+                object_unparent(obj);
+            } else {
+                object_unref(obj);
+            }
         }
         b->chr = NULL;
     }
-- 
2.18.0.129.ge3331758f1


Re: [Qemu-devel] [PATCH v4 03/29] chardev: unref if underlying chardev has no parent
Posted by Daniel P. Berrangé 7 years, 2 months ago
On Fri, Jul 13, 2018 at 03:08:50PM +0200, Marc-André Lureau wrote:
> It's possible to write code creating a chardev backend that is not
> registered. When it is not user-created, it makes sense to keep it
> hidden. Let the associated frontend destroy it also in this case.
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  chardev/char-fe.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|