[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 02/28] xics: Make some device types not user creatable
From: |
David Gibson |
Subject: |
[PULL 02/28] xics: Make some device types not user creatable |
Date: |
Thu, 24 Oct 2019 19:17:47 +1100 |
From: Greg Kurz <address@hidden>
Some device types of the XICS model are exposed to the QEMU command
line:
$ ppc64-softmmu/qemu-system-ppc64 -device help | grep ic[sp]
name "icp"
name "ics"
name "ics-spapr"
name "pnv-icp", desc "PowerNV ICP"
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 icp: required link 'xics' not found:
Property '.xics' not found
qemu-system-ppc64: -device ics: required link 'xics' not found:
Property '.xics' not found
qemu-system-ppc64: -device ics-spapr: required link 'xics' not found:
Property '.xics' not found
qemu-system-ppc64: -device pnv-icp: required link 'xics' not found:
Property '.xics' not found
Hide them by setting dc->user_creatable to false in the base class
"icp" and "ics" init functions.
Signed-off-by: Greg Kurz <address@hidden>
Message-Id: <address@hidden>
Message-Id: <address@hidden>
[dwg: Folded reason comment into base patch]
Signed-off-by: David Gibson <address@hidden>
---
hw/intc/xics.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/hw/intc/xics.c b/hw/intc/xics.c
index dfe7dbd254..b5ac408f7b 100644
--- a/hw/intc/xics.c
+++ b/hw/intc/xics.c
@@ -369,6 +369,11 @@ static void icp_class_init(ObjectClass *klass, void *data)
dc->realize = icp_realize;
dc->unrealize = icp_unrealize;
+ /*
+ * Reason: part of XICS interrupt controller, needs to be wired up
+ * by icp_create().
+ */
+ dc->user_creatable = false;
}
static const TypeInfo icp_info = {
@@ -689,6 +694,11 @@ static void ics_class_init(ObjectClass *klass, void *data)
dc->props = ics_properties;
dc->reset = ics_reset;
dc->vmsd = &vmstate_ics;
+ /*
+ * Reason: part of XICS interrupt controller, needs to be wired up,
+ * e.g. by spapr_irq_init().
+ */
+ dc->user_creatable = false;
}
static const TypeInfo ics_info = {
--
2.21.0
- [PULL 00/28] ppc-for-4.2 queue 20191024, David Gibson, 2019/10/24
- [PULL 05/28] ppc/pnv: Use address_space_stq_be() when triggering an interrupt from PSI, David Gibson, 2019/10/24
- [PULL 02/28] xics: Make some device types not user creatable,
David Gibson <=
- [PULL 01/28] xive: Make some device types not user creatable, David Gibson, 2019/10/24
- [PULL 07/28] spapr, xics, xive: Introduce SpaprInterruptController QOM interface, David Gibson, 2019/10/24
- [PULL 03/28] target/ppc: Fix for optimized vsl/vsr instructions, David Gibson, 2019/10/24
- [PULL 11/28] spapr, xics, xive: Move set_irq from SpaprIrq to SpaprInterruptController, David Gibson, 2019/10/24
- [PULL 04/28] ppc/pnv: Improve trigger data definition, David Gibson, 2019/10/24
- [PULL 21/28] spapr: Don't request to unplug the same core twice, David Gibson, 2019/10/24
- [PULL 10/28] spapr: Formalize notion of active interrupt controller, David Gibson, 2019/10/24
- [PULL 08/28] spapr, xics, xive: Move cpu_intc_create from SpaprIrq to SpaprInterruptController, David Gibson, 2019/10/24
- [PULL 23/28] spapr_cpu_core: Implement DeviceClass::reset, David Gibson, 2019/10/24
- [PULL 09/28] spapr, xics, xive: Move irq claim and free from SpaprIrq to SpaprInterruptController, David Gibson, 2019/10/24