qemu-ppc
[Top][All Lists]
Advanced

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

Re: [Qemu-ppc] [PATCH] spapr: fix check of cpu alias name in spapr_get_c


From: Bharata B Rao
Subject: Re: [Qemu-ppc] [PATCH] spapr: fix check of cpu alias name in spapr_get_cpu_core_type()
Date: Mon, 3 Oct 2016 20:44:22 +0530
User-agent: Mutt/1.6.1 (2016-04-27)

On Mon, Oct 03, 2016 at 02:13:20PM +0200, Greg Kurz wrote:
> If the user passes an alias name and a property to -cpu, QEMU fails to
> find the CPU definition and exits.
> 
> $ qemu-system-ppc64 -cpu POWER8E,compat=power7
> qemu-system-ppc64: Unable to find sPAPR CPU Core definition
> 
> This happens because spapr_get_cpu_core_type() passes the full string from
> the command line (i.e. "POWER8E,compat=power7") to ppc_cpu_lookup_alias(),
> instead of the alias name piece only (i.e. "POWER8E").
> 
> The fix is to pass model_pieces[0] to ppc_cpu_lookup_alias().
> 
> Signed-off-by: Greg Kurz <address@hidden>

Reviewed-by: Bharata B Rao <address@hidden>

> ---
>  hw/ppc/spapr_cpu_core.c |    8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
> index 6f0533c34259..35d1873b9ff3 100644
> --- a/hw/ppc/spapr_cpu_core.c
> +++ b/hw/ppc/spapr_cpu_core.c
> @@ -92,20 +92,20 @@ char *spapr_get_cpu_core_type(const char *model)
>      gchar **model_pieces = g_strsplit(model, ",", 2);
> 
>      core_type = g_strdup_printf("%s-%s", model_pieces[0], 
> TYPE_SPAPR_CPU_CORE);
> -    g_strfreev(model_pieces);
> 
>      /* Check whether it exists or whether we have to look up an alias name */
>      if (!object_class_by_name(core_type)) {
>          const char *realmodel;
> 
>          g_free(core_type);
> -        realmodel = ppc_cpu_lookup_alias(model);
> +        core_type = NULL;
> +        realmodel = ppc_cpu_lookup_alias(model_pieces[0]);
>          if (realmodel) {
> -            return spapr_get_cpu_core_type(realmodel);
> +            core_type = spapr_get_cpu_core_type(realmodel);
>          }
> -        return NULL;
>      }
> 
> +    g_strfreev(model_pieces);
>      return core_type;
>  }
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]