Re: [PATCH] qemu-kvm: Fix boot CPU setup for the case it is unsupported

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 






On 03/04/2010 02:00 AM, Jan Kiszka wrote:
> Commit 52b03dd702 incorrectly failed KVM initialization in case the
> kernel did not support KVM_CAP_SET_BOOT_CPU_ID. Fix this, and also
> improve error propagation of kvm_create_context at this chance.
> 
> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>
> ---
> 
> OK, it really was me. :)
> 
>  qemu-kvm-x86.c |    9 +++++++--
>  qemu-kvm.c     |    4 +++-
>  2 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c
> index 7a5925a..7d42fdc 100644
> --- a/qemu-kvm-x86.c
> +++ b/qemu-kvm-x86.c
> @@ -672,7 +672,7 @@ static const VMStateDescription vmstate_kvmclock= {
>  
>  int kvm_arch_qemu_create_context(void)
>  {
> -    int i;
> +    int i, r;
>      struct utsname utsname;
>  
>      uname(&utsname);
> @@ -696,7 +696,12 @@ int kvm_arch_qemu_create_context(void)
>          vmstate_register(0, &vmstate_kvmclock, &kvmclock_data);
>  #endif
>  
> -    return kvm_set_boot_cpu_id(0);
> +    r = kvm_set_boot_cpu_id(0);
> +    if (r < 0 && r != -ENOSYS) {
> +        return r;
> +    }
> +
> +    return 0;
>  }
>  
>  static void set_msr_entry(struct kvm_msr_entry *entry, uint32_t index,
> diff --git a/qemu-kvm.c b/qemu-kvm.c
> index 222ca97..e417f21 100644
> --- a/qemu-kvm.c
> +++ b/qemu-kvm.c
> @@ -2091,8 +2091,10 @@ static int kvm_create_context(void)
>          return -1;
>      }
>      r = kvm_arch_qemu_create_context();
> -    if (r < 0)
> +    if (r < 0) {
>          kvm_finalize(kvm_state);
> +        return -1;
> +    }
>      if (kvm_pit && !kvm_pit_reinject) {
>          if (kvm_reinject_control(kvm_context, 0)) {
>              fprintf(stderr, "failure to disable in-kernel PIT reinjection\n");
> 

Works for me: FC12 host, FC12 guest.

David
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux