From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39177) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aOkS3-0005cJ-RW for qemu-devel@nongnu.org; Thu, 28 Jan 2016 06:09:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aOkS1-0000YS-5D for qemu-devel@nongnu.org; Thu, 28 Jan 2016 06:09:23 -0500 Received: from e06smtp17.uk.ibm.com ([195.75.94.113]:42360) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aOkS0-0000Y8-R4 for qemu-devel@nongnu.org; Thu, 28 Jan 2016 06:09:21 -0500 Received: from localhost by e06smtp17.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 28 Jan 2016 11:09:19 -0000 Received: from b06cxnps3075.portsmouth.uk.ibm.com (d06relay10.portsmouth.uk.ibm.com [9.149.109.195]) by d06dlp02.portsmouth.uk.ibm.com (Postfix) with ESMTP id AD625219005C for ; Thu, 28 Jan 2016 11:09:03 +0000 (GMT) Received: from d06av01.portsmouth.uk.ibm.com (d06av01.portsmouth.uk.ibm.com [9.149.37.212]) by b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id u0SB9Gbu66912278 for ; Thu, 28 Jan 2016 11:09:16 GMT Received: from d06av01.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av01.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id u0SB9FP0011019 for ; Thu, 28 Jan 2016 04:09:16 -0700 From: Cornelia Huck Date: Thu, 28 Jan 2016 12:09:04 +0100 Message-Id: <1453979351-13089-4-git-send-email-cornelia.huck@de.ibm.com> In-Reply-To: <1453979351-13089-1-git-send-email-cornelia.huck@de.ibm.com> References: <1453979351-13089-1-git-send-email-cornelia.huck@de.ibm.com> Subject: [Qemu-devel] [PULL 03/10] s390x/sclp: add device to the sysbus in sclp_realize List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: peter.maydell@linaro.org Cc: borntraeger@de.ibm.com, qemu-devel@nongnu.org, agraf@suse.de, David Hildenbrand , jfrei@linux.vnet.ibm.com, Cornelia Huck From: David Hildenbrand The init of a device should have no side effects. Therefore move registering of the event facility into the realize function, so multiple instances of the SCLP device can be created e.g. for introspection. Add some more detail as to why we have to add it to the sysbus at all. Suggested-by: Paolo Bonzini Signed-off-by: David Hildenbrand Signed-off-by: Cornelia Huck --- hw/s390x/sclp.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c index 74f2b40..23dee88 100644 --- a/hw/s390x/sclp.c +++ b/hw/s390x/sclp.c @@ -465,6 +465,12 @@ static void sclp_realize(DeviceState *dev, Error **errp) if (err) { goto out; } + /* + * qdev_device_add searches the sysbus for TYPE_SCLP_EVENTS_BUS. As long + * as we can't find a fitting bus via the qom tree, we have to add the + * event facility to the sysbus, so e.g. a sclp console can be created. + */ + qdev_set_parent_bus(DEVICE(sclp->event_facility), sysbus_get_default()); ret = s390_set_memory_limit(machine->maxram_size, &hw_limit); if (ret == -E2BIG) { @@ -533,8 +539,6 @@ static void sclp_init(Object *obj) new = object_new(TYPE_SCLP_EVENT_FACILITY); object_property_add_child(obj, TYPE_SCLP_EVENT_FACILITY, new, NULL); - /* qdev_device_add searches the sysbus for TYPE_SCLP_EVENTS_BUS */ - qdev_set_parent_bus(DEVICE(new), sysbus_get_default()); object_unref(new); sclp->event_facility = EVENT_FACILITY(new); -- 2.7.0