diff options
Diffstat (limited to 'hw/intc')
-rw-r--r-- | hw/intc/xics_kvm.c | 13 | ||||
-rw-r--r-- | hw/intc/xics_spapr.c | 11 |
2 files changed, 5 insertions, 19 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) diff --git a/hw/intc/xics_spapr.c b/hw/intc/xics_spapr.c index 35045a20b8..aaf6808cd2 100644 --- a/hw/intc/xics_spapr.c +++ b/hw/intc/xics_spapr.c @@ -240,7 +240,7 @@ static void rtas_int_on(PowerPCCPU *cpu, sPAPRMachineState *spapr, rtas_st(rets, 0, RTAS_OUT_SUCCESS); } -static void xics_spapr_realize(DeviceState *dev, Error **errp) +int xics_spapr_init(sPAPRMachineState *spapr, Error **errp) { /* Registration of global state belongs into realize */ spapr_rtas_register(RTAS_IBM_SET_XIVE, "ibm,set-xive", rtas_set_xive); @@ -254,13 +254,7 @@ static void xics_spapr_realize(DeviceState *dev, Error **errp) spapr_register_hypercall(H_XIRR_X, h_xirr_x); spapr_register_hypercall(H_EOI, h_eoi); spapr_register_hypercall(H_IPOLL, h_ipoll); -} - -static void xics_spapr_class_init(ObjectClass *oc, void *data) -{ - DeviceClass *dc = DEVICE_CLASS(oc); - - dc->realize = xics_spapr_realize; + return 0; } static const TypeInfo xics_spapr_info = { @@ -268,7 +262,6 @@ static const TypeInfo xics_spapr_info = { .parent = TYPE_XICS_COMMON, .instance_size = sizeof(XICSState), .class_size = sizeof(XICSStateClass), - .class_init = xics_spapr_class_init, }; #define ICS_IRQ_FREE(ics, srcno) \ |