hw/s390x/s390-virtio-ccw.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
The sclpconsole currently does not have a proper parent in the QOM
tree, so it shows up under /machine/unattached - which is somewhat
ugly. We should rather attach it to /machine/sclp/s390-sclp-event-facility
where the other devices of type TYPE_SCLP_EVENT already reside.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/s390x/s390-virtio-ccw.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 5c83d1ea17..41be8bf857 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -242,11 +242,13 @@ static void s390_create_virtio_net(BusState *bus, const char *name)
static void s390_create_sclpconsole(const char *type, Chardev *chardev)
{
+ BusState *ev_fac_bus = sclp_get_event_facility_bus();
DeviceState *dev;
dev = qdev_new(type);
+ object_property_add_child(OBJECT(ev_fac_bus->parent), type, OBJECT(dev));
qdev_prop_set_chr(dev, "chardev", chardev);
- qdev_realize_and_unref(dev, sclp_get_event_facility_bus(), &error_fatal);
+ qdev_realize_and_unref(dev, ev_fac_bus, &error_fatal);
}
static void ccw_init(MachineState *machine)
--
2.44.0
On 4/30/24 21:08, Thomas Huth wrote:
> The sclpconsole currently does not have a proper parent in the QOM
> tree, so it shows up under /machine/unattached - which is somewhat
> ugly. We should rather attach it to /machine/sclp/s390-sclp-event-facility
> where the other devices of type TYPE_SCLP_EVENT already reside.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
> ---
> hw/s390x/s390-virtio-ccw.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
> index 5c83d1ea17..41be8bf857 100644
> --- a/hw/s390x/s390-virtio-ccw.c
> +++ b/hw/s390x/s390-virtio-ccw.c
> @@ -242,11 +242,13 @@ static void s390_create_virtio_net(BusState *bus, const char *name)
>
> static void s390_create_sclpconsole(const char *type, Chardev *chardev)
> {
> + BusState *ev_fac_bus = sclp_get_event_facility_bus();
This routine sclp_get_event_facility_bus() which scans all the machine
could be avoided and even removed. For that, SCLPDevice should be an
attribute of the machine. This means reshuffling definitions and
object instanciations a little in the code. Would you be OK with that ?
Other machine units/models could undergo the same kind of changes.
Thanks,
C.
> DeviceState *dev;
>
> dev = qdev_new(type);
> + object_property_add_child(OBJECT(ev_fac_bus->parent), type, OBJECT(dev));
> qdev_prop_set_chr(dev, "chardev", chardev);
> - qdev_realize_and_unref(dev, sclp_get_event_facility_bus(), &error_fatal);
> + qdev_realize_and_unref(dev, ev_fac_bus, &error_fatal);
> }
>
> static void ccw_init(MachineState *machine)
On 02/05/2024 09.57, Cédric Le Goater wrote:
> On 4/30/24 21:08, Thomas Huth wrote:
>> The sclpconsole currently does not have a proper parent in the QOM
>> tree, so it shows up under /machine/unattached - which is somewhat
>> ugly. We should rather attach it to /machine/sclp/s390-sclp-event-facility
>> where the other devices of type TYPE_SCLP_EVENT already reside.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>
> Reviewed-by: Cédric Le Goater <clg@redhat.com>
>
>> ---
>> hw/s390x/s390-virtio-ccw.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
>> index 5c83d1ea17..41be8bf857 100644
>> --- a/hw/s390x/s390-virtio-ccw.c
>> +++ b/hw/s390x/s390-virtio-ccw.c
>> @@ -242,11 +242,13 @@ static void s390_create_virtio_net(BusState *bus,
>> const char *name)
>> static void s390_create_sclpconsole(const char *type, Chardev *chardev)
>> {
>> + BusState *ev_fac_bus = sclp_get_event_facility_bus();
>
> This routine sclp_get_event_facility_bus() which scans all the machine
> could be avoided and even removed. For that, SCLPDevice should be an
> attribute of the machine. This means reshuffling definitions and
> object instanciations a little in the code. Would you be OK with that ?
Sounds like a good clean-up, yes!
Thomas
On Tue, 2024-04-30 at 21:08 +0200, Thomas Huth wrote: > The sclpconsole currently does not have a proper parent in the QOM > tree, so it shows up under /machine/unattached - which is somewhat > ugly. We should rather attach it to /machine/sclp/s390-sclp-event- > facility > where the other devices of type TYPE_SCLP_EVENT already reside. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > hw/s390x/s390-virtio-ccw.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) Reviewed-by: Eric Farman <farman@linux.ibm.com>
On 30/4/24 21:08, Thomas Huth wrote: > The sclpconsole currently does not have a proper parent in the QOM > tree, so it shows up under /machine/unattached - which is somewhat > ugly. We should rather attach it to /machine/sclp/s390-sclp-event-facility > where the other devices of type TYPE_SCLP_EVENT already reside. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > hw/s390x/s390-virtio-ccw.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
On 30.04.24 21:08, Thomas Huth wrote:
> The sclpconsole currently does not have a proper parent in the QOM
> tree, so it shows up under /machine/unattached - which is somewhat
> ugly. We should rather attach it to /machine/sclp/s390-sclp-event-facility
> where the other devices of type TYPE_SCLP_EVENT already reside.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> hw/s390x/s390-virtio-ccw.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
> index 5c83d1ea17..41be8bf857 100644
> --- a/hw/s390x/s390-virtio-ccw.c
> +++ b/hw/s390x/s390-virtio-ccw.c
> @@ -242,11 +242,13 @@ static void s390_create_virtio_net(BusState *bus, const char *name)
>
> static void s390_create_sclpconsole(const char *type, Chardev *chardev)
> {
> + BusState *ev_fac_bus = sclp_get_event_facility_bus();
> DeviceState *dev;
>
> dev = qdev_new(type);
> + object_property_add_child(OBJECT(ev_fac_bus->parent), type, OBJECT(dev));
> qdev_prop_set_chr(dev, "chardev", chardev);
> - qdev_realize_and_unref(dev, sclp_get_event_facility_bus(), &error_fatal);
> + qdev_realize_and_unref(dev, ev_fac_bus, &error_fatal);
> }
>
> static void ccw_init(MachineState *machine)
Reviewed-by: David Hildenbrand <david@redhat.com>
--
Cheers,
David / dhildenb
© 2016 - 2026 Red Hat, Inc.