[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCHv5 3/4] pseries: Reset CPU compatibility mode
From: |
David Gibson |
Subject: |
[Qemu-ppc] [PATCHv5 3/4] pseries: Reset CPU compatibility mode |
Date: |
Fri, 2 Jun 2017 13:15:06 +1000 |
Currently, the CPU compatibility mode is set when the cpu is initialized,
then again when the guest negotiates features. This means if a guest
negotiates a compatibility mode, then reboots, that compatibility mode
will be retained across the reset.
Usually that will get overridden when features are negotiated on the next
boot, but it's still not really correct. This patch moves the initial set
up of the compatibility mode from cpu init to reset time. The mode *is*
retained if the reboot was caused by the feature negotiation (it might
be important in that case, though it's unlikely).
Signed-off-by: David Gibson <address@hidden>
Reviewed-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: Michael Roth <address@hidden>
---
hw/ppc/spapr.c | 2 ++
hw/ppc/spapr_cpu_core.c | 10 ----------
2 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 3c4e88f..2821b7e 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1348,6 +1348,8 @@ static void ppc_spapr_reset(void)
if (!spapr->cas_reboot) {
spapr_ovec_cleanup(spapr->ov5_cas);
spapr->ov5_cas = spapr_ovec_new();
+
+ ppc_set_compat_all(spapr->max_compat_pvr, &error_abort);
}
fdt = spapr_build_fdt(spapr, rtas_addr, spapr->rtas_size);
diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
index 846d9e7..7970871 100644
--- a/hw/ppc/spapr_cpu_core.c
+++ b/hw/ppc/spapr_cpu_core.c
@@ -121,16 +121,6 @@ static void spapr_cpu_init(sPAPRMachineState *spapr,
PowerPCCPU *cpu,
/* Enable PAPR mode in TCG or KVM */
cpu_ppc_set_papr(cpu, PPC_VIRTUAL_HYPERVISOR(spapr));
- if (spapr->max_compat_pvr) {
- Error *local_err = NULL;
-
- ppc_set_compat(cpu, spapr->max_compat_pvr, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
- return;
- }
- }
-
qemu_register_reset(spapr_cpu_reset, cpu);
spapr_cpu_reset(cpu);
}
--
2.9.4
- [Qemu-ppc] [PATCHv5 0/4] Clean up compatibility mode handling, David Gibson, 2017/06/01
- [Qemu-ppc] [PATCHv5 4/4] ppc: Rework CPU compatibility testing across migration, David Gibson, 2017/06/01
- [Qemu-ppc] [PATCHv5 1/4] qapi: add explicit null to string input and output visitors, David Gibson, 2017/06/01
- [Qemu-ppc] [PATCHv5 3/4] pseries: Reset CPU compatibility mode,
David Gibson <=
- [Qemu-ppc] [PATCHv5 2/4] pseries: Move CPU compatibility property to machine, David Gibson, 2017/06/01
- Re: [Qemu-ppc] [Qemu-devel] [PATCHv5 0/4] Clean up compatibility mode handling, no-reply, 2017/06/01
- Re: [Qemu-ppc] [PATCHv5 0/4] Clean up compatibility mode handling, David Gibson, 2017/06/08
- Re: [Qemu-ppc] [PATCHv5 0/4] Clean up compatibility mode handling, Andrea Bolognani, 2017/06/10