Skip to content

Commit

Permalink
spapr/irq: Use the "simple" ICS class for KVM
Browse files Browse the repository at this point in the history
The "simple" ICS class knows how to interract with KVM. Adapt sPAPR to use
it instead of the ICS KVM class.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <155023083585.1011724.2868047424353921455.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
  • Loading branch information
gkurz authored and dgibson committed Feb 17, 2019
1 parent 557b456 commit 444d6ca
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions hw/ppc/spapr_irq.c
Expand Up @@ -67,13 +67,12 @@ void spapr_irq_msi_reset(sPAPRMachineState *spapr)
*/

static ICSState *spapr_ics_create(sPAPRMachineState *spapr,
const char *type_ics,
int nr_irqs, Error **errp)
{
Error *local_err = NULL;
Object *obj;

obj = object_new(type_ics);
obj = object_new(TYPE_ICS_SIMPLE);
object_property_add_child(OBJECT(spapr), "ics", obj, &error_abort);
object_property_add_const_link(obj, ICS_PROP_XICS, OBJECT(spapr),
&error_abort);
Expand All @@ -98,14 +97,14 @@ static void spapr_irq_init_xics(sPAPRMachineState *spapr, int nr_irqs,
{
MachineState *machine = MACHINE(spapr);
Error *local_err = NULL;
bool xics_kvm = false;

if (kvm_enabled()) {
if (machine_kernel_irqchip_allowed(machine) &&
!xics_kvm_init(spapr, &local_err)) {
spapr->ics = spapr_ics_create(spapr, TYPE_ICS_KVM, nr_irqs,
&local_err);
xics_kvm = true;
}
if (machine_kernel_irqchip_required(machine) && !spapr->ics) {
if (machine_kernel_irqchip_required(machine) && !xics_kvm) {
error_prepend(&local_err,
"kernel_irqchip requested but unavailable: ");
goto error;
Expand All @@ -114,12 +113,12 @@ static void spapr_irq_init_xics(sPAPRMachineState *spapr, int nr_irqs,
local_err = NULL;
}

if (!spapr->ics) {
if (!xics_kvm) {
xics_spapr_init(spapr);
spapr->ics = spapr_ics_create(spapr, TYPE_ICS_SIMPLE, nr_irqs,
&local_err);
}

spapr->ics = spapr_ics_create(spapr, nr_irqs, &local_err);

error:
error_propagate(errp, local_err);
}
Expand Down

0 comments on commit 444d6ca

Please sign in to comment.