qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 01/23] target-i386: return Error from cpu_x86_fi


From: Luiz Capitulino
Subject: Re: [Qemu-devel] [PATCH 01/23] target-i386: return Error from cpu_x86_find_by_name()
Date: Wed, 10 Oct 2012 13:37:21 -0300

On Wed, 10 Oct 2012 16:38:10 +0200
Igor Mammedov <address@hidden> wrote:

> On Wed, 10 Oct 2012 16:05:10 +0200
> Andreas Färber <address@hidden> wrote:
> 
> > Am 02.10.2012 17:36, schrieb Igor Mammedov:
> > > it will allow to use property setters there later.
> > > 
> > > Signed-off-by: Igor Mammedov <address@hidden>
> > > Reviewed-by: Don Slutz <address@hidden>
> > > Reviewed-by: Eduardo Habkost <address@hidden>
> > > --
> > > v2:
> > >     - style change, add braces (reqested by Blue Swirl)
> > >     - removed unused error_is_set(errp) in properties set loop
> > > ---
> > >  target-i386/cpu.c |   15 ++++++++++++---
> > >  1 files changed, 12 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> > > index bb1e44e..e1ffa40 100644
> > > --- a/target-i386/cpu.c
> > > +++ b/target-i386/cpu.c
> > > @@ -1097,7 +1097,8 @@ static void x86_cpuid_set_tsc_freq(Object *obj,
> > > Visitor *v, void *opaque, cpu->env.tsc_khz = value / 1000;
> > >  }
> > >  
> > > -static int cpu_x86_find_by_name(x86_def_t *x86_cpu_def, const char
> > > *cpu_model) +static int cpu_x86_find_by_name(X86CPU *cpu, x86_def_t
> > > *x86_cpu_def,
> > > +                                const char *cpu_model, Error **errp)
> > >  {
> > >      unsigned int i;
> > >      x86_def_t *def;
> > 
> > > @@ -1254,6 +1255,7 @@ static int cpu_x86_find_by_name(x86_def_t
> > > *x86_cpu_def, const char *cpu_model) fprintf(stderr, "feature string `%s'
> > > not in format (+feature|-feature|feature=xyz)\n", featurestr); goto error;
> > >          }
> > > +
> > >          featurestr = strtok(NULL, ",");
> > >      }
> > >      x86_cpu_def->features |= plus_features;
> > 
> > Disconnected whitespace change.
> > 
> > > @@ -1282,6 +1284,9 @@ static int cpu_x86_find_by_name(x86_def_t
> > > *x86_cpu_def, const char *cpu_model) 
> > >  error:
> > >      g_free(s);
> > > +    if (!error_is_set(errp)) {
> > > +        error_set(errp, QERR_INVALID_PARAMETER_COMBINATION);
> > 
> > Note to self: error_set() checks for errp being NULL, so the use of
> > !error_is_set() logic seems fine.
> > 
> > QERR_ alarm - acceptable use? Or better use error_setg() or something?
> > 
> > Otherwise looks okay to me, I could drop the whitespace hunk myself.
> I'll fix it for the next re-spin of this series and do whatever is decided
> with QERR_...

It's simpler than you can imagine, you can just do:

error_setg(errp, "invalid parameter combination: %s", params);

> 
> Thanks!
> 
> > 
> > Andreas
> > 
> > > +    }
> > >      return -1;
> > >  }
> > >  
> > > @@ -1368,8 +1373,10 @@ int cpu_x86_register(X86CPU *cpu, const char
> > > *cpu_model) 
> > >      memset(def, 0, sizeof(*def));
> > >  
> > > -    if (cpu_x86_find_by_name(def, cpu_model) < 0)
> > > -        return -1;
> > > +    if (cpu_x86_find_by_name(cpu, def, cpu_model, &error) < 0) {
> > > +        goto out;
> > > +    }
> > > +
> > >      if (def->vendor1) {
> > >          env->cpuid_vendor1 = def->vendor1;
> > >          env->cpuid_vendor2 = def->vendor2;
> > > @@ -1419,6 +1426,8 @@ int cpu_x86_register(X86CPU *cpu, const char
> > > *cpu_model) env->cpuid_svm_features &= TCG_SVM_FEATURES;
> > >      }
> > >      object_property_set_str(OBJECT(cpu), def->model_id, "model-id",
> > > &error); +
> > > +out:
> > >      if (error_is_set(&error)) {
> > >          error_free(error);
> > >          return -1;
> > > 
> > 
> > 
> 




reply via email to

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