[libvirt] [PATCH 2/2] qemu: Fix command line generation with faked host CPU

Serge E. Hallyn serge.hallyn at canonical.com
Tue Feb 15 16:00:10 UTC 2011


Quoting Jiri Denemark (jdenemar at redhat.com):
> The code expected that host CPU architecture matches the architecture on
> which libvirt runs. This is normally true but not in tests, where host
> CPU is faked to produce consistent results.
> ---
>  src/qemu/qemu_command.c |    8 +++++---
>  1 files changed, 5 insertions(+), 3 deletions(-)

Tested-by: Serge Hallyn <serge.hallyn at canonical.com>

> 
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 1687203..efd120c 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -2440,7 +2440,8 @@ qemuBuildCpuArgStr(const struct qemud_driver *driver,
>      *hasHwVirt = false;
>  
>      if (def->cpu && def->cpu->model) {
> -        if (qemuCapsProbeCPUModels(emulator, qemuCmdFlags, ut->machine,
> +        if (host &&
> +            qemuCapsProbeCPUModels(emulator, qemuCmdFlags, host->arch,
>                                     &ncpus, &cpus) < 0)
>              goto cleanup;
>  
> @@ -2469,7 +2470,7 @@ qemuBuildCpuArgStr(const struct qemud_driver *driver,
>              break;
>          }
>  
> -        if (VIR_ALLOC(guest) < 0 || !(guest->arch = strdup(ut->machine)))
> +        if (VIR_ALLOC(guest) < 0 || !(guest->arch = strdup(host->arch)))
>              goto no_memory;
>  
>          if (def->cpu->match == VIR_CPU_MATCH_MINIMUM)
> @@ -2528,8 +2529,9 @@ qemuBuildCpuArgStr(const struct qemud_driver *driver,
>      ret = 0;
>  
>  cleanup:
> +    if (guest)
> +        cpuDataFree(guest->arch, data);
>      virCPUDefFree(guest);
> -    cpuDataFree(ut->machine, data);
>  
>      if (cpus) {
>          for (i = 0; i < ncpus; i++)
> -- 
> 1.7.4.1
> 
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list




More information about the libvir-list mailing list