[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] kvmvapic: fix migration
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH] kvmvapic: fix migration |
Date: |
Mon, 22 Sep 2014 21:07:14 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 |
Il 22/09/2014 14:14, Pavel Dovgalyuk ha scritto:
> This patch fixes migration by extending do_vapic_enable function. This
> function
> called vapic_enable which read cpu number from the guest memory. When cpu
> number could not be read, vapic was not enabled while loading the VM state.
> This patch adds required code for cpu_number=0 to do_vapic_enable function,
> because it is called only when cpu_number=0.
>
> Signed-off-by: Pavel Dovgalyuk <address@hidden>
> ---
> hw/i386/kvmvapic.c | 6 +++++-
> 1 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/hw/i386/kvmvapic.c b/hw/i386/kvmvapic.c
> index 2cca7a4..f9da050 100644
> --- a/hw/i386/kvmvapic.c
> +++ b/hw/i386/kvmvapic.c
> @@ -732,7 +732,11 @@ static void do_vapic_enable(void *data)
> VAPICROMState *s = data;
> X86CPU *cpu = X86_CPU(first_cpu);
>
> - vapic_enable(s, cpu);
> + static const uint8_t enabled = 1;
> + cpu_physical_memory_write(s->vapic_paddr + offsetof(VAPICState, enabled),
> + &enabled, sizeof(enabled));
> + apic_enable_vapic(cpu->apic_state, s->vapic_paddr);
> + s->state = VAPIC_ACTIVE;
> }
>
> static void kvmvapic_vm_state_change(void *opaque, int running,
>
Thanks.
Paolo