[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 01/19] xive: Make some device types not user creatable
From: |
David Gibson |
Subject: |
[PATCH v4 01/19] xive: Make some device types not user creatable |
Date: |
Wed, 9 Oct 2019 17:08:00 +1100 |
From: Greg Kurz <address@hidden>
Some device types of the XIVE model are exposed to the QEMU command
line:
$ ppc64-softmmu/qemu-system-ppc64 -device help | grep xive
name "xive-end-source", desc "XIVE END Source"
name "xive-source", desc "XIVE Interrupt Source"
name "xive-tctx", desc "XIVE Interrupt Thread Context"
These are internal devices that shouldn't be instantiable by the
user. By the way, they can't be because their respective realize
functions expect link properties that can't be set from the command
line:
qemu-system-ppc64: -device xive-source: required link 'xive' not found:
Property '.xive' not found
qemu-system-ppc64: -device xive-end-source: required link 'xive' not found:
Property '.xive' not found
qemu-system-ppc64: -device xive-tctx: required link 'cpu' not found:
Property '.cpu' not found
Hide them by setting dc->user_creatable to false in their respective
class init functions.
Signed-off-by: Greg Kurz <address@hidden>
Message-Id: <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
[dwg: Folded comment update into base patch]
Signed-off-by: David Gibson <address@hidden>
---
hw/intc/xive.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/hw/intc/xive.c b/hw/intc/xive.c
index 29df06df11..453d389848 100644
--- a/hw/intc/xive.c
+++ b/hw/intc/xive.c
@@ -670,6 +670,11 @@ static void xive_tctx_class_init(ObjectClass *klass, void
*data)
dc->realize = xive_tctx_realize;
dc->unrealize = xive_tctx_unrealize;
dc->vmsd = &vmstate_xive_tctx;
+ /*
+ * Reason: part of XIVE interrupt controller, needs to be wired up
+ * by xive_tctx_create().
+ */
+ dc->user_creatable = false;
}
static const TypeInfo xive_tctx_info = {
@@ -1118,6 +1123,11 @@ static void xive_source_class_init(ObjectClass *klass,
void *data)
dc->props = xive_source_properties;
dc->realize = xive_source_realize;
dc->vmsd = &vmstate_xive_source;
+ /*
+ * Reason: part of XIVE interrupt controller, needs to be wired up,
+ * e.g. by spapr_xive_instance_init().
+ */
+ dc->user_creatable = false;
}
static const TypeInfo xive_source_info = {
@@ -1853,6 +1863,11 @@ static void xive_end_source_class_init(ObjectClass
*klass, void *data)
dc->desc = "XIVE END Source";
dc->props = xive_end_source_properties;
dc->realize = xive_end_source_realize;
+ /*
+ * Reason: part of XIVE interrupt controller, needs to be wired up,
+ * e.g. by spapr_xive_instance_init().
+ */
+ dc->user_creatable = false;
}
static const TypeInfo xive_end_source_info = {
--
2.21.0
- [PATCH v4 00/19] spapr: IRQ subsystem cleanup, David Gibson, 2019/10/09
- [PATCH v4 02/19] xics: Make some device types not user creatable, David Gibson, 2019/10/09
- [PATCH v4 01/19] xive: Make some device types not user creatable,
David Gibson <=
- [PATCH v4 03/19] target/ppc: Fix for optimized vsl/vsr instructions, David Gibson, 2019/10/09
- [PATCH v4 04/19] spapr, xics, xive: Introduce SpaprInterruptController QOM interface, David Gibson, 2019/10/09
- [PATCH v4 08/19] spapr, xics, xive: Move set_irq from SpaprIrq to SpaprInterruptController, David Gibson, 2019/10/09
- [PATCH v4 12/19] spapr: Remove SpaprIrq::init_kvm hook, David Gibson, 2019/10/09
- [PATCH v4 07/19] spapr: Formalize notion of active interrupt controller, David Gibson, 2019/10/09
- [PATCH v4 14/19] spapr, xics, xive: Move SpaprIrq::post_load hook to backends, David Gibson, 2019/10/09