[Top][All Lists]
[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: |
Igor Mammedov |
Subject: |
Re: [Qemu-devel] [PATCH 01/23] target-i386: return Error from cpu_x86_find_by_name() |
Date: |
Wed, 10 Oct 2012 16:38:10 +0200 |
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_...
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;
> >
>
>