[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [for-2.7 PATCH v3 02/15] exec: Do vmstate unregistratio
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [for-2.7 PATCH v3 02/15] exec: Do vmstate unregistration from cpu_exec_exit() |
Date: |
Thu, 26 May 2016 12:22:23 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.0 |
On 12/05/2016 05:48, Bharata B Rao wrote:
> cpu_exec_init() does vmstate_register for the CPU device. This needs to be
> undone from cpu_exec_exit(). This change is needed to support CPU hot
> removal.
>
> Signed-off-by: Bharata B Rao <address@hidden>
> Reviewed-by: Thomas Huth <address@hidden>
> Reviewed-by: David Gibson <address@hidden>
> ---
> exec.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/exec.c b/exec.c
> index da1f09a..32bd5df 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -635,6 +635,8 @@ static void cpu_release_index(CPUState *cpu)
>
> void cpu_exec_exit(CPUState *cpu)
> {
> + CPUClass *cc = CPU_GET_CLASS(cpu);
> +
> #if defined(CONFIG_USER_ONLY)
> cpu_list_lock();
> #endif
> @@ -652,6 +654,13 @@ void cpu_exec_exit(CPUState *cpu)
> #if defined(CONFIG_USER_ONLY)
> cpu_list_unlock();
> #endif
> +
> + if (cc->vmsd != NULL) {
> + vmstate_unregister(NULL, cc->vmsd, cpu);
> + }
> + if (qdev_get_vmsd(DEVICE(cpu)) == NULL) {
> + vmstate_unregister(NULL, &vmstate_cpu_common, cpu);
> + }
> }
>
> void cpu_exec_init(CPUState *cpu, Error **errp)
>
Acked-by: Paolo Bonzini <address@hidden>