diff options
author | Eduardo Habkost <ehabkost@redhat.com> | 2014-08-21 17:22:56 -0300 |
---|---|---|
committer | Andreas Färber <afaerber@suse.de> | 2014-09-05 16:37:07 +0200 |
commit | c00c94abbdb82c39c22b6dd72875aa1ae0f4b2c0 (patch) | |
tree | 101d18d00854ea1267d4d93b495f0e553cb896ba | |
parent | 4d1b279b0675a8b483a5f101212d1dedfb1a3cec (diff) | |
download | qemu-c00c94abbdb82c39c22b6dd72875aa1ae0f4b2c0.zip |
target-i386: Reject invalid CPU feature names on the command-line
Instead of simply printing a warning, report an error when invalid CPU
options are provided on the CPU model string.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
-rw-r--r-- | target-i386/cpu.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/target-i386/cpu.c b/target-i386/cpu.c index a5826ecfa0..88b64d8b66 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -592,7 +592,8 @@ static bool lookup_feature(uint32_t *pval, const char *s, const char *e, } static void add_flagname_to_bitmaps(const char *flagname, - FeatureWordArray words) + FeatureWordArray words, + Error **errp) { FeatureWord w; for (w = 0; w < FEATURE_WORDS; w++) { @@ -603,7 +604,7 @@ static void add_flagname_to_bitmaps(const char *flagname, } } if (w == FEATURE_WORDS) { - fprintf(stderr, "CPU feature %s not found\n", flagname); + error_setg(errp, "CPU feature %s not found", flagname); } } @@ -1761,9 +1762,9 @@ static void x86_cpu_parse_featurestr(CPUState *cs, char *features, while (featurestr) { char *val; if (featurestr[0] == '+') { - add_flagname_to_bitmaps(featurestr + 1, plus_features); + add_flagname_to_bitmaps(featurestr + 1, plus_features, &local_err); } else if (featurestr[0] == '-') { - add_flagname_to_bitmaps(featurestr + 1, minus_features); + add_flagname_to_bitmaps(featurestr + 1, minus_features, &local_err); } else if ((val = strchr(featurestr, '='))) { *val = 0; val++; feat2prop(featurestr); |