Use new cpu_addess_space_init() to initialize the ASes for CPU, instead of setting cpu->num_ases directly and use cpu_address_space_add() to add the required ASes dynamically.
Signed-off-by: Gustavo Romero <[email protected]> --- target/i386/kvm/kvm-cpu.c | 4 ++-- target/i386/kvm/kvm.c | 4 ++-- target/i386/tcg/system/tcg-cpu.c | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/target/i386/kvm/kvm-cpu.c b/target/i386/kvm/kvm-cpu.c index 9c25b55839..9b7364f1c6 100644 --- a/target/i386/kvm/kvm-cpu.c +++ b/target/i386/kvm/kvm-cpu.c @@ -98,8 +98,8 @@ static bool kvm_cpu_realizefn(CPUState *cs, Error **errp) * Only initialize address space 0 here, the second one for SMM is * initialized at register_smram_listener() after machine init done. */ - cs->num_ases = x86_machine_is_smm_enabled(X86_MACHINE(current_machine)) ? 2 : 1; - cpu_address_space_init(cs, X86ASIdx_MEM, "cpu-memory", cs->memory); + cpu_address_space_init(cs, X86ASIdx_MAX); + cpu_address_space_add(cs, X86ASIdx_MEM, "cpu-memory", cs->memory); return true; } diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index 60c7981138..dcc7e5eeae 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -2744,14 +2744,14 @@ static void register_smram_listener(Notifier *n, void *unused) &smram_address_space, X86ASIdx_SMM, "kvm-smram"); CPU_FOREACH(cpu) { - cpu_address_space_init(cpu, X86ASIdx_SMM, "cpu-smm", &smram_as_root); + cpu_address_space_add(cpu, X86ASIdx_SMM, "cpu-smm", &smram_as_root); } } /* It should only be called in cpu's hotplug callback */ void kvm_smm_cpu_address_space_init(X86CPU *cpu) { - cpu_address_space_init(CPU(cpu), X86ASIdx_SMM, "cpu-smm", &smram_as_root); + cpu_address_space_add(CPU(cpu), X86ASIdx_SMM, "cpu-smm", &smram_as_root); } static void *kvm_msr_energy_thread(void *data) diff --git a/target/i386/tcg/system/tcg-cpu.c b/target/i386/tcg/system/tcg-cpu.c index 7255862c24..ab72c5ff7b 100644 --- a/target/i386/tcg/system/tcg-cpu.c +++ b/target/i386/tcg/system/tcg-cpu.c @@ -73,9 +73,9 @@ bool tcg_cpu_realizefn(CPUState *cs, Error **errp) memory_region_add_subregion_overlap(cpu->cpu_as_root, 0, cpu->cpu_as_mem, 0); memory_region_set_enabled(cpu->cpu_as_mem, true); - cs->num_ases = 2; - cpu_address_space_init(cs, X86ASIdx_MEM, "cpu-memory", cs->memory); - cpu_address_space_init(cs, X86ASIdx_SMM, "cpu-smm", cpu->cpu_as_root); + cpu_address_space_init(cs, X86ASIdx_MAX); + cpu_address_space_add(cs, X86ASIdx_MEM, "cpu-memory", cs->memory); + cpu_address_space_add(cs, X86ASIdx_SMM, "cpu-smm", cpu->cpu_as_root); /* ... SMRAM with higher priority, linked from /machine/smram. */ cpu->machine_done.notify = tcg_cpu_machine_done; -- 2.34.1
