diff options
author | Cédric Le Goater <clg@kaod.org> | 2017-02-27 15:29:29 +0100 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2017-03-01 11:23:40 +1100 |
commit | 2192a9303d43ee5e1b2b65f5ed9a93922bcdd1df (patch) | |
tree | 1e4abc094d5f79aa0a3ef6509d98b405c9e6aa0b /hw/intc/xics_kvm.c | |
parent | 852ad27e14325be69c1afa2bb940ba7dc2ba1a8f (diff) |
ppc/xics: export the XICS init routines
There is nothing left related to the XICS object in the realize
functions of the KVMXICSState and XICSState class. So adapt the
interfaces to call these routines directly from the sPAPR machine init
sequence.
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw/intc/xics_kvm.c')
-rw-r--r-- | hw/intc/xics_kvm.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/hw/intc/xics_kvm.c b/hw/intc/xics_kvm.c index 07298b0971..99836112cd 100644 --- a/hw/intc/xics_kvm.c +++ b/hw/intc/xics_kvm.c @@ -363,7 +363,7 @@ static void rtas_dummy(PowerPCCPU *cpu, sPAPRMachineState *spapr, __func__); } -static void xics_kvm_realize(DeviceState *dev, Error **errp) +int xics_kvm_init(sPAPRMachineState *spapr, Error **errp) { int rc; struct kvm_create_device xics_create_device = { @@ -419,27 +419,20 @@ static void xics_kvm_realize(DeviceState *dev, Error **errp) kvm_msi_via_irqfd_allowed = true; kvm_gsi_direct_mapping = true; - return; + return rc; fail: kvmppc_define_rtas_kernel_token(0, "ibm,set-xive"); kvmppc_define_rtas_kernel_token(0, "ibm,get-xive"); kvmppc_define_rtas_kernel_token(0, "ibm,int-on"); kvmppc_define_rtas_kernel_token(0, "ibm,int-off"); -} - -static void xics_kvm_class_init(ObjectClass *oc, void *data) -{ - DeviceClass *dc = DEVICE_CLASS(oc); - - dc->realize = xics_kvm_realize; + return -1; } static const TypeInfo xics_spapr_kvm_info = { .name = TYPE_XICS_SPAPR_KVM, .parent = TYPE_XICS_COMMON, .instance_size = sizeof(KVMXICSState), - .class_init = xics_kvm_class_init, }; static void xics_kvm_register_types(void) |