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 <pavel.dovga...@ispras.ru>
> ---
>  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

Reply via email to