[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC 01/20] target-i386: return Error from cpu_x86_find
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [RFC 01/20] target-i386: return Error from cpu_x86_find_by_name() |
Date: |
Sat, 11 Aug 2012 12:19:43 +0000 |
On Fri, Aug 10, 2012 at 11:22 AM, Igor Mammedov <address@hidden> wrote:
> it will allow to use property setters there later.
>
> Signed-off-by: Igor Mammedov <address@hidden>
> ---
> target-i386/cpu.c | 18 +++++++++++++++---
> 1 file changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index 880cfea..ee25309 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -858,7 +858,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;
> @@ -1003,6 +1004,11 @@ 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;
> }
> +
> + if (error_is_set(errp)) {
> + goto error;
> + }
> +
> featurestr = strtok(NULL, ",");
> }
> x86_cpu_def->features |= plus_features;
> @@ -1026,6 +1032,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);
> + }
> return -1;
> }
>
> @@ -1133,8 +1142,9 @@ 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)
Please add braces.
> + goto out;
> +
> if (def->vendor1) {
> env->cpuid_vendor1 = def->vendor1;
> env->cpuid_vendor2 = def->vendor2;
> @@ -1173,6 +1183,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;
> --
> 1.7.11.2
>
- [Qemu-devel] [RFC 00/20] target-i386: convert CPU features into properties, Igor Mammedov, 2012/08/10
- [Qemu-devel] [RFC 01/20] target-i386: return Error from cpu_x86_find_by_name(), Igor Mammedov, 2012/08/10
- Re: [Qemu-devel] [RFC 01/20] target-i386: return Error from cpu_x86_find_by_name(),
Blue Swirl <=
- [Qemu-devel] [RFC 02/20] target-i386: cpu_x86_register(): report error from property setter, Igor Mammedov, 2012/08/10
- [Qemu-devel] [RFC 03/20] target-i386: if x86_cpu_realize() failed report error and do cleanup, Igor Mammedov, 2012/08/10
- [Qemu-devel] [RFC 04/20] target-i386: filter out not TCG features if running without kvm at realize time, Igor Mammedov, 2012/08/10
- [Qemu-devel] [RFC 05/20] target-i386: move out CPU features initialization in separate func, Igor Mammedov, 2012/08/10
- [Qemu-devel] [RFC 06/20] target-i386: xlevel should be more than 0x80000000, move fixup into setter, Igor Mammedov, 2012/08/10
- [Qemu-devel] [RFC 07/20] target-i386: convert cpuid features into properties, Igor Mammedov, 2012/08/10