The "sclp" device is just an internal device that can not be instantiated
by the users. If they try to use it, they only get a simple error message:
$ qemu-system-s390x -nographic -device sclp
qemu-system-s390x: Option '-device s390-sclp-event-facility' cannot be
handled by this machine
Since sclp_init() tries to create a TYPE_SCLP_EVENT_FACILITY which is
a non-pluggable sysbus device, there is really no way that the "sclp"
device can be used by the user, so let's set the user_creatable = false
accordingly.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/s390x/sclp.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
index 30aefbf..9be0cb8 100644
--- a/hw/s390x/sclp.c
+++ b/hw/s390x/sclp.c
@@ -606,6 +606,11 @@ static void sclp_class_init(ObjectClass *oc, void *data)
dc->realize = sclp_realize;
dc->hotpluggable = false;
set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+ /*
+ * Reason: Creates TYPE_SCLP_EVENT_FACILITY in sclp_init
+ * which is a non-pluggable sysbus device
+ */
+ dc->user_creatable = false;
sc->read_SCP_info = read_SCP_info;
sc->read_storage_element0_info = read_storage_element0_info;
--
1.8.3.1
On Wed, 4 Oct 2017 15:53:19 +0200 Thomas Huth <thuth@redhat.com> wrote: > The "sclp" device is just an internal device that can not be > instantiated by the users. If they try to use it, they only get a > simple error message: > > $ qemu-system-s390x -nographic -device sclp > qemu-system-s390x: Option '-device s390-sclp-event-facility' cannot be > handled by this machine > > Since sclp_init() tries to create a TYPE_SCLP_EVENT_FACILITY which is > a non-pluggable sysbus device, there is really no way that the "sclp" > device can be used by the user, so let's set the user_creatable = > false accordingly. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > hw/s390x/sclp.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c > index 30aefbf..9be0cb8 100644 > --- a/hw/s390x/sclp.c > +++ b/hw/s390x/sclp.c > @@ -606,6 +606,11 @@ static void sclp_class_init(ObjectClass *oc, > void *data) dc->realize = sclp_realize; > dc->hotpluggable = false; > set_bit(DEVICE_CATEGORY_MISC, dc->categories); > + /* > + * Reason: Creates TYPE_SCLP_EVENT_FACILITY in sclp_init > + * which is a non-pluggable sysbus device > + */ > + dc->user_creatable = false; > > sc->read_SCP_info = read_SCP_info; > sc->read_storage_element0_info = read_storage_element0_info; makes sense Reviewed-by: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>
On 10/04/2017 09:53 AM, Thomas Huth wrote: > The "sclp" device is just an internal device that can not be instantiated > by the users. If they try to use it, they only get a simple error message: > > $ qemu-system-s390x -nographic -device sclp > qemu-system-s390x: Option '-device s390-sclp-event-facility' cannot be > handled by this machine > > Since sclp_init() tries to create a TYPE_SCLP_EVENT_FACILITY which is > a non-pluggable sysbus device, there is really no way that the "sclp" > device can be used by the user, so let's set the user_creatable = false > accordingly. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > hw/s390x/sclp.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c > index 30aefbf..9be0cb8 100644 > --- a/hw/s390x/sclp.c > +++ b/hw/s390x/sclp.c > @@ -606,6 +606,11 @@ static void sclp_class_init(ObjectClass *oc, void *data) > dc->realize = sclp_realize; > dc->hotpluggable = false; > set_bit(DEVICE_CATEGORY_MISC, dc->categories); > + /* > + * Reason: Creates TYPE_SCLP_EVENT_FACILITY in sclp_init > + * which is a non-pluggable sysbus device > + */ > + dc->user_creatable = false; > > sc->read_SCP_info = read_SCP_info; > sc->read_storage_element0_info = read_storage_element0_info; > Reviewed-by: Farhan Ali <alifm@linux.vnet.ibm.com>
On 10/04/2017 03:53 PM, Thomas Huth wrote: > The "sclp" device is just an internal device that can not be instantiated > by the users. If they try to use it, they only get a simple error message: > > $ qemu-system-s390x -nographic -device sclp > qemu-system-s390x: Option '-device s390-sclp-event-facility' cannot be > handled by this machine > > Since sclp_init() tries to create a TYPE_SCLP_EVENT_FACILITY which is > a non-pluggable sysbus device, there is really no way that the "sclp" > device can be used by the user, so let's set the user_creatable = false > accordingly. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > While I'm not really familiar with the sclp code, I do understand the measure (user_creatable = false), but I'm not sure I understand the explanation. So it's: Acked-by: Halil Pasic <pasic@linux.vnet.ibm.com> --- > hw/s390x/sclp.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c > index 30aefbf..9be0cb8 100644 > --- a/hw/s390x/sclp.c > +++ b/hw/s390x/sclp.c > @@ -606,6 +606,11 @@ static void sclp_class_init(ObjectClass *oc, void *data) > dc->realize = sclp_realize; > dc->hotpluggable = false; > set_bit(DEVICE_CATEGORY_MISC, dc->categories); > + /* > + * Reason: Creates TYPE_SCLP_EVENT_FACILITY in sclp_init > + * which is a non-pluggable sysbus device > + */ > + dc->user_creatable = false; > > sc->read_SCP_info = read_SCP_info; > sc->read_storage_element0_info = read_storage_element0_info; >
On 04/10/2017 15:53, Thomas Huth wrote: > The "sclp" device is just an internal device that can not be instantiated > by the users. If they try to use it, they only get a simple error message: > > $ qemu-system-s390x -nographic -device sclp > qemu-system-s390x: Option '-device s390-sclp-event-facility' cannot be > handled by this machine > > Since sclp_init() tries to create a TYPE_SCLP_EVENT_FACILITY which is > a non-pluggable sysbus device, there is really no way that the "sclp" > device can be used by the user, so let's set the user_creatable = false > accordingly. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > hw/s390x/sclp.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c > index 30aefbf..9be0cb8 100644 > --- a/hw/s390x/sclp.c > +++ b/hw/s390x/sclp.c > @@ -606,6 +606,11 @@ static void sclp_class_init(ObjectClass *oc, void *data) > dc->realize = sclp_realize; > dc->hotpluggable = false; > set_bit(DEVICE_CATEGORY_MISC, dc->categories); > + /* > + * Reason: Creates TYPE_SCLP_EVENT_FACILITY in sclp_init > + * which is a non-pluggable sysbus device > + */ > + dc->user_creatable = false; > > sc->read_SCP_info = read_SCP_info; > sc->read_storage_element0_info = read_storage_element0_info; > I must miss something. Why is the sclp device not a SYS_BUS_DEVICE ? The problem seems to come from the heterogeneity of the sclp and sclp generated devices. -- Pierre Morel Linux/KVM/QEMU in Böblingen - Germany
On Wed, 4 Oct 2017 17:18:57 +0200 Pierre Morel <pmorel@linux.vnet.ibm.com> wrote: > On 04/10/2017 15:53, Thomas Huth wrote: > > The "sclp" device is just an internal device that can not be instantiated > > by the users. If they try to use it, they only get a simple error message: > > > > $ qemu-system-s390x -nographic -device sclp > > qemu-system-s390x: Option '-device s390-sclp-event-facility' cannot be > > handled by this machine > > > > Since sclp_init() tries to create a TYPE_SCLP_EVENT_FACILITY which is > > a non-pluggable sysbus device, there is really no way that the "sclp" > > device can be used by the user, so let's set the user_creatable = false > > accordingly. > > > > Signed-off-by: Thomas Huth <thuth@redhat.com> > > --- > > hw/s390x/sclp.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c > > index 30aefbf..9be0cb8 100644 > > --- a/hw/s390x/sclp.c > > +++ b/hw/s390x/sclp.c > > @@ -606,6 +606,11 @@ static void sclp_class_init(ObjectClass *oc, void *data) > > dc->realize = sclp_realize; > > dc->hotpluggable = false; > > set_bit(DEVICE_CATEGORY_MISC, dc->categories); > > + /* > > + * Reason: Creates TYPE_SCLP_EVENT_FACILITY in sclp_init > > + * which is a non-pluggable sysbus device > > + */ > > + dc->user_creatable = false; > > > > sc->read_SCP_info = read_SCP_info; > > sc->read_storage_element0_info = read_storage_element0_info; > > > > I must miss something. > Why is the sclp device not a SYS_BUS_DEVICE ? > The problem seems to come from the heterogeneity of the sclp and sclp > generated devices. > I think the problem is 'not pluggable' rather than whether it is or is not a sysbus device, no?
On 04.10.2017 17:18, Pierre Morel wrote: > On 04/10/2017 15:53, Thomas Huth wrote: >> The "sclp" device is just an internal device that can not be instantiated >> by the users. If they try to use it, they only get a simple error >> message: >> >> $ qemu-system-s390x -nographic -device sclp >> qemu-system-s390x: Option '-device s390-sclp-event-facility' cannot be >> handled by this machine >> >> Since sclp_init() tries to create a TYPE_SCLP_EVENT_FACILITY which is >> a non-pluggable sysbus device, there is really no way that the "sclp" >> device can be used by the user, so let's set the user_creatable = false >> accordingly. >> >> Signed-off-by: Thomas Huth <thuth@redhat.com> >> --- >> hw/s390x/sclp.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c >> index 30aefbf..9be0cb8 100644 >> --- a/hw/s390x/sclp.c >> +++ b/hw/s390x/sclp.c >> @@ -606,6 +606,11 @@ static void sclp_class_init(ObjectClass *oc, void >> *data) >> dc->realize = sclp_realize; >> dc->hotpluggable = false; >> set_bit(DEVICE_CATEGORY_MISC, dc->categories); >> + /* >> + * Reason: Creates TYPE_SCLP_EVENT_FACILITY in sclp_init >> + * which is a non-pluggable sysbus device >> + */ >> + dc->user_creatable = false; >> >> sc->read_SCP_info = read_SCP_info; >> sc->read_storage_element0_info = read_storage_element0_info; >> > > I must miss something. > Why is the sclp device not a SYS_BUS_DEVICE ? > The problem seems to come from the heterogeneity of the sclp and sclp > generated devices. I wonder whether it should rather be the other way round: Why is TYPE_SCLP_EVENT_FACILITY a sysbus device? Sysbus is an abstraction for simple on-board devices, while TYPE_SCLP_EVENT_FACILITY seems rather to be a pseudo-device... so it should rather simply be of TYPE_DEVICE instead? Or do I miss something? Thomas
On Wed, 4 Oct 2017 19:06:57 +0200 Thomas Huth <thuth@redhat.com> wrote: > On 04.10.2017 17:18, Pierre Morel wrote: > > On 04/10/2017 15:53, Thomas Huth wrote: > >> The "sclp" device is just an internal device that can not be instantiated > >> by the users. If they try to use it, they only get a simple error > >> message: > >> > >> $ qemu-system-s390x -nographic -device sclp > >> qemu-system-s390x: Option '-device s390-sclp-event-facility' cannot be > >> handled by this machine > >> > >> Since sclp_init() tries to create a TYPE_SCLP_EVENT_FACILITY which is > >> a non-pluggable sysbus device, there is really no way that the "sclp" > >> device can be used by the user, so let's set the user_creatable = false > >> accordingly. > >> > >> Signed-off-by: Thomas Huth <thuth@redhat.com> > >> --- > >> hw/s390x/sclp.c | 5 +++++ > >> 1 file changed, 5 insertions(+) > >> > >> diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c > >> index 30aefbf..9be0cb8 100644 > >> --- a/hw/s390x/sclp.c > >> +++ b/hw/s390x/sclp.c > >> @@ -606,6 +606,11 @@ static void sclp_class_init(ObjectClass *oc, void > >> *data) > >> dc->realize = sclp_realize; > >> dc->hotpluggable = false; > >> set_bit(DEVICE_CATEGORY_MISC, dc->categories); > >> + /* > >> + * Reason: Creates TYPE_SCLP_EVENT_FACILITY in sclp_init > >> + * which is a non-pluggable sysbus device > >> + */ > >> + dc->user_creatable = false; > >> > >> sc->read_SCP_info = read_SCP_info; > >> sc->read_storage_element0_info = read_storage_element0_info; > >> > > > > I must miss something. > > Why is the sclp device not a SYS_BUS_DEVICE ? > > The problem seems to come from the heterogeneity of the sclp and sclp > > generated devices. > > I wonder whether it should rather be the other way round: Why is > TYPE_SCLP_EVENT_FACILITY a sysbus device? Sysbus is an abstraction for > simple on-board devices, while TYPE_SCLP_EVENT_FACILITY seems rather to > be a pseudo-device... so it should rather simply be of TYPE_DEVICE > instead? Or do I miss something? We do have a number of devices that are sysbus because you could not have bus-less devices back then. We might want to convert them to a simple TYPE_DEVICE, but this needs double-checking regarding resets and other things and I'd rather not spend that much time on that right now.
On Wed, 4 Oct 2017 15:53:19 +0200 Thomas Huth <thuth@redhat.com> wrote: > The "sclp" device is just an internal device that can not be instantiated > by the users. If they try to use it, they only get a simple error message: > > $ qemu-system-s390x -nographic -device sclp > qemu-system-s390x: Option '-device s390-sclp-event-facility' cannot be > handled by this machine > > Since sclp_init() tries to create a TYPE_SCLP_EVENT_FACILITY which is > a non-pluggable sysbus device, there is really no way that the "sclp" > device can be used by the user, so let's set the user_creatable = false > accordingly. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > hw/s390x/sclp.c | 5 +++++ > 1 file changed, 5 insertions(+) Thanks, applied.
© 2016 - 2024 Red Hat, Inc.