s390x: set missing parent for hotplug and quiesce events
commit7059384c7e27d68c502d8636eb711873a9a6a597
authorDavid Hildenbrand <dahi@linux.vnet.ibm.com>
Thu, 1 Oct 2015 08:49:45 +0000 (1 10:49 +0200)
committerChristian Borntraeger <borntraeger@de.ibm.com>
Fri, 2 Oct 2015 11:31:52 +0000 (2 13:31 +0200)
tree236a9b1f3ffc16d262a946e5d44dc49111223c4d
parent8a641ff60f38799a10ed44a7c5bddd386bc169ed
s390x: set missing parent for hotplug and quiesce events

Existing code missed to set a parent for the quiesce and hotplug event.
While this didn't matter in practise, new introspection APIs basically now
do an object_unref(object_new(T)), which loops forever.

When trying to remove the event facility bus, the code tries to
unparent all childs on the bus, so they are properly deleted and therefore removed.
As object_unparent() on these child devices doesn't work, as there is no parent,
we loop forever.

Let's fix this by adding the event facility as a parent. Also switch from
object_initialize to object_new, so the only valid reference is in fact the
parent property. This makes it more obvious when the device (state) is actually
gone (and how the reference counting works).

Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com>
Message-Id: <1443689387-34473-4-git-send-email-jfrei@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
hw/s390x/event-facility.c