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>
This commit is contained in:
Eduardo Habkost 2014-08-21 17:22:56 -03:00 committed by Andreas Färber
parent 4d1b279b06
commit c00c94abbd
1 changed files with 5 additions and 4 deletions

View File

@ -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, static void add_flagname_to_bitmaps(const char *flagname,
FeatureWordArray words) FeatureWordArray words,
Error **errp)
{ {
FeatureWord w; FeatureWord w;
for (w = 0; w < FEATURE_WORDS; 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) { 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) { while (featurestr) {
char *val; char *val;
if (featurestr[0] == '+') { 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] == '-') { } 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, '='))) { } else if ((val = strchr(featurestr, '='))) {
*val = 0; val++; *val = 0; val++;
feat2prop(featurestr); feat2prop(featurestr);