[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PULL 20/40] spapr: initialize VSMT before initializing the I
From: |
David Gibson |
Subject: |
[Qemu-ppc] [PULL 20/40] spapr: initialize VSMT before initializing the IRQ backend |
Date: |
Fri, 21 Dec 2018 16:45:46 +1100 |
From: Cédric Le Goater <address@hidden>
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 <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
[dwg: Fix style nit]
Signed-off-by: David Gibson <address@hidden>
---
hw/ppc/spapr.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 051d080fe5..2b2df6b848 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -2464,11 +2464,6 @@ static void spapr_init_cpus(sPAPRMachineState *spapr)
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) {
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 */
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 */
smc->irq->init(spapr, &error_fatal);
--
2.19.2
- [Qemu-ppc] [PULL 00/40] ppc-for-4.0 queue 20181221, David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 02/40] target/ppc: Remove silly GETFIELD/SETFIELD/MASK_TO_LSH macros, David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 03/40] spapr: Fix ibm, max-associativity-domains property number of nodes, David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 05/40] spapr: drop redundant statement in spapr_populate_drconf_memory(), David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 07/40] spapr: use g_new(T, n) instead of g_malloc(sizeof(T) * n), David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 06/40] target/ppc: use g_new(T, n) instead of g_malloc(sizeof(T) * n), David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 12/40] virtex_ml507: use g_new(T, n) instead of g_malloc(sizeof(T) * n), David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 10/40] ppc440_bamboo: use g_new(T, n) instead of g_malloc(sizeof(T) * n), David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 13/40] mac_newworld: simplify IRQ wiring, David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 20/40] spapr: initialize VSMT before initializing the IRQ backend,
David Gibson <=
- [Qemu-ppc] [PULL 04/40] target/ppc: tcg: Implement addex instruction, David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 11/40] sam460ex: use g_new(T, n) instead of g_malloc(sizeof(T) * n), David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 01/40] target/ppc: fix the PPC_BIT definitions, David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 08/40] ppc405_boards: use g_new(T, n) instead of g_malloc(sizeof(T) * n), David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 14/40] e500: simplify IRQ wiring, David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 09/40] ppc405_uc: use g_new(T, n) instead of g_malloc(sizeof(T) * n), David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 18/40] ppc/xive: introduce the XiveRouter model, David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 23/40] Changes requirement for "vsubsbs" instruction, David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 15/40] ppc/xive: introduce a XIVE interrupt source model, David Gibson, 2018/12/21
- [Qemu-ppc] [PULL 17/40] ppc/xive: introduce the XiveNotifier interface, David Gibson, 2018/12/21