[ ... ] >>> So, instead I think we want a machine option which can be set to >>> xics/xive/dual, with xics being the default for earlier machine types >>> and dual the default for 4.0 onwards. >> >> I will revive an old patch doing just that. >> >> The question now is how to link the sPAPRMachineState instance to >> the selected sPAPR IRQ backend. >> >> I don't think we can move 'smc->irq' to sPAPRMachineState. > > I think you could.. > >> So we will >> need an helper returning the appropriate backend depending on the machine >> option and 'smc->irq' should disappear. > > ..but this approach might be easier.
I proposed the first approach in v8. We can add the missing wrappers in a second round and move then under spapr_irq.h. These are : ops : spapr->irq->dt_populate spapr->irq->print_info spapr->irq->cpu_intc_create (this name is too long) constants : spapr->irq->ov5 spapr->irq->nr_msis C.