[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCHv3 3/4] pseries: Reset CPU compatibility mode
From: |
Michael Roth |
Subject: |
Re: [Qemu-devel] [PATCHv3 3/4] pseries: Reset CPU compatibility mode |
Date: |
Thu, 27 Apr 2017 13:08:59 -0500 |
User-agent: |
alot/0.5.1 |
Quoting David Gibson (2017-04-27 02:28:42)
> 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 547fa27..67f5106 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -1332,6 +1332,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 ba610bc..e810431 100644
> --- a/hw/ppc/spapr_cpu_core.c
> +++ b/hw/ppc/spapr_cpu_core.c
> @@ -107,16 +107,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.3
>
- [Qemu-devel] [PATCHv3 0/4] Clean up compatibility mode handling, David Gibson, 2017/04/27
- [Qemu-devel] [PATCHv3 1/4] qapi: add explicit null to string input and output visitors, David Gibson, 2017/04/27
- [Qemu-devel] [PATCHv3 4/4] ppc: Rework CPU compatibility testing across migration, David Gibson, 2017/04/27
- [Qemu-devel] [PATCHv3 2/4] pseries: Move CPU compatibility property to machine, David Gibson, 2017/04/27
- [Qemu-devel] [PATCHv3 3/4] pseries: Reset CPU compatibility mode, David Gibson, 2017/04/27
- Re: [Qemu-devel] [PATCHv3 3/4] pseries: Reset CPU compatibility mode,
Michael Roth <=
- Re: [Qemu-devel] [PATCHv3 0/4] Clean up compatibility mode handling, no-reply, 2017/04/27
- Re: [Qemu-devel] [PATCHv3 0/4] Clean up compatibility mode handling, Greg Kurz, 2017/04/28