mirror of https://gitlab.com/qemu-project/qemu
spapr: initialize VSMT before initializing the IRQ backend
We will need to use xics_max_server_number() to create the sPAPRXive object modeling the interrupt controller of the machine which is created before the CPUs. Signed-off-by: Cédric Le Goater <clg@kaod.org> Reviewed-by: Greg Kurz <groug@kaod.org> [dwg: Fix style nit] Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
e4ddaac67f
commit
482969d680
|
@ -2464,11 +2464,6 @@ static void spapr_init_cpus(sPAPRMachineState *spapr)
|
||||||
boot_cores_nr = possible_cpus->len;
|
boot_cores_nr = possible_cpus->len;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* VSMT must be set in order to be able to compute VCPU ids, ie to
|
|
||||||
* call xics_max_server_number() or spapr_vcpu_id().
|
|
||||||
*/
|
|
||||||
spapr_set_vsmt_mode(spapr, &error_fatal);
|
|
||||||
|
|
||||||
if (smc->pre_2_10_has_unused_icps) {
|
if (smc->pre_2_10_has_unused_icps) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -2591,6 +2586,12 @@ static void spapr_machine_init(MachineState *machine)
|
||||||
/* Setup a load limit for the ramdisk leaving room for SLOF and FDT */
|
/* Setup a load limit for the ramdisk leaving room for SLOF and FDT */
|
||||||
load_limit = MIN(spapr->rma_size, RTAS_MAX_ADDR) - FW_OVERHEAD;
|
load_limit = MIN(spapr->rma_size, RTAS_MAX_ADDR) - FW_OVERHEAD;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* VSMT must be set in order to be able to compute VCPU ids, ie to
|
||||||
|
* call xics_max_server_number() or spapr_vcpu_id().
|
||||||
|
*/
|
||||||
|
spapr_set_vsmt_mode(spapr, &error_fatal);
|
||||||
|
|
||||||
/* Set up Interrupt Controller before we create the VCPUs */
|
/* Set up Interrupt Controller before we create the VCPUs */
|
||||||
smc->irq->init(spapr, &error_fatal);
|
smc->irq->init(spapr, &error_fatal);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue