Message ID | 20231102002500.1750692-29-gshan@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Unified CPU type check | expand |
On 11/1/23 17:24, Gavin Shan wrote: > The names of supported CPU models instead of CPU types should be > printed when the user specified CPU type isn't supported, to be > consistent with the output from '-cpu ?'. > > Correct the error messages to print CPU model names instead of CPU > type names. > > Signed-off-by: Gavin Shan <gshan@redhat.com> > --- > hw/core/machine.c | 19 +++++++++++++++---- > 1 file changed, 15 insertions(+), 4 deletions(-) > > diff --git a/hw/core/machine.c b/hw/core/machine.c > index 2d78692df1..1dd0f8831b 100644 > --- a/hw/core/machine.c > +++ b/hw/core/machine.c > @@ -1391,6 +1391,7 @@ static void is_cpu_type_supported(MachineState *machine, Error **errp) > MachineClass *mc = MACHINE_GET_CLASS(machine); > ObjectClass *oc = object_class_by_name(machine->cpu_type); > CPUClass *cc; > + char *model; No need for this outside... > int i; > > /* > @@ -1407,11 +1408,21 @@ static void is_cpu_type_supported(MachineState *machine, Error **errp) > > /* The user specified CPU type isn't valid */ > if (!mc->valid_cpu_types[i]) { ... this block. > - error_setg(errp, "Invalid CPU type: %s", machine->cpu_type); > - error_append_hint(errp, "The valid types are: %s", > - mc->valid_cpu_types[0]); > + model = cpu_model_from_type(machine->cpu_type); > + g_assert(model != NULL); > + error_setg(errp, "Invalid CPU type: %s", model); > + g_free(model); > + > + model = cpu_model_from_type(mc->valid_cpu_types[0]); > + g_assert(model != NULL); > + error_append_hint(errp, "The valid types are: %s", model); > + g_free(model); > + > for (i = 1; mc->valid_cpu_types[i]; i++) { > - error_append_hint(errp, ", %s", mc->valid_cpu_types[i]); > + model = cpu_model_from_type(mc->valid_cpu_types[i]); > + g_assert(model != NULL); > + error_append_hint(errp, ", %s", model); > + g_free(model); > } I really don't like all of the replicated asserts for non-null. You already know there's no path through cpu_model_from_type that doesn't return something... And anyway, in extremis, "(nil)" will print just fine. r~
diff --git a/hw/core/machine.c b/hw/core/machine.c index 2d78692df1..1dd0f8831b 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -1391,6 +1391,7 @@ static void is_cpu_type_supported(MachineState *machine, Error **errp) MachineClass *mc = MACHINE_GET_CLASS(machine); ObjectClass *oc = object_class_by_name(machine->cpu_type); CPUClass *cc; + char *model; int i; /* @@ -1407,11 +1408,21 @@ static void is_cpu_type_supported(MachineState *machine, Error **errp) /* The user specified CPU type isn't valid */ if (!mc->valid_cpu_types[i]) { - error_setg(errp, "Invalid CPU type: %s", machine->cpu_type); - error_append_hint(errp, "The valid types are: %s", - mc->valid_cpu_types[0]); + model = cpu_model_from_type(machine->cpu_type); + g_assert(model != NULL); + error_setg(errp, "Invalid CPU type: %s", model); + g_free(model); + + model = cpu_model_from_type(mc->valid_cpu_types[0]); + g_assert(model != NULL); + error_append_hint(errp, "The valid types are: %s", model); + g_free(model); + for (i = 1; mc->valid_cpu_types[i]; i++) { - error_append_hint(errp, ", %s", mc->valid_cpu_types[i]); + model = cpu_model_from_type(mc->valid_cpu_types[i]); + g_assert(model != NULL); + error_append_hint(errp, ", %s", model); + g_free(model); } error_append_hint(errp, "\n");
The names of supported CPU models instead of CPU types should be printed when the user specified CPU type isn't supported, to be consistent with the output from '-cpu ?'. Correct the error messages to print CPU model names instead of CPU type names. Signed-off-by: Gavin Shan <gshan@redhat.com> --- hw/core/machine.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-)