[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 5/4] vl: Clean up machine selection in main().
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH 5/4] vl: Clean up machine selection in main(). |
Date: |
Tue, 16 Feb 2016 20:52:58 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Marcel Apfelbaum <address@hidden> writes:
> On 02/16/2016 04:57 PM, Markus Armbruster wrote:
>> We set machine_class to the default first, and update it to the real
>> one later. Any use of machine_class in between is almost certainly
>> wrong. Set it once and for all instead.
>>
>> Signed-off-by: Markus Armbruster <address@hidden>
>> ---
>> vl.c | 11 ++++++-----
>> 1 file changed, 6 insertions(+), 5 deletions(-)
>>
>> diff --git a/vl.c b/vl.c
>> index 7918e9f..098728c 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -2748,8 +2748,9 @@ static const QEMUOption *lookup_opt(int argc, char
>> **argv,
>> return popt;
>> }
>>
>> -static void set_machine_options(MachineClass **machine_class)
>> +static MachineClass *select_machine(MachineClass *dflt)
>
> Hi Markus,
>
> I am no fan of "dflt" naming, but I can live with it.
>
>> {
>> + MachineClass *machine_class = dflt;
>> const char *optarg;
>> QemuOpts *opts;
>> Location loc;
>> @@ -2761,16 +2762,17 @@ static void set_machine_options(MachineClass
>> **machine_class)
>>
>> optarg = qemu_opt_get(opts, "type");
>> if (optarg) {
>> - *machine_class = machine_parse(optarg);
>> + machine_class = machine_parse(optarg);
>> }
>>
>> - if (*machine_class == NULL) {
>> + if (!machine_class) {
>> error_report("No machine specified, and there is no default");
>> error_printf("Use -machine help to list supported machines\n");
>> exit(1);
>> }
>>
>> loc_pop(&loc);
>> + return machine_class;
>> }
>>
>> static int machine_set_property(void *opaque,
>> @@ -3075,7 +3077,6 @@ int main(int argc, char **argv, char **envp)
>> os_setup_early_signal_handling();
>>
>> module_call_init(MODULE_INIT_MACHINE);
>> - machine_class = find_default_machine();
>> cpu_model = NULL;
>> snapshot = 0;
>> cyls = heads = secs = 0;
>> @@ -4066,7 +4067,7 @@ int main(int argc, char **argv, char **envp)
>>
>> replay_configure(icount_opts);
>>
>> - set_machine_options(&machine_class);
>> + machine_class = select_machine(find_default_machine());
>
> I like the approach "going all the way", I would
> even hide the call to find_default_machine inside select_machine.
Good idea. Squashing in:
diff --git a/vl.c b/vl.c
index 098728c..c0b6747 100644
--- a/vl.c
+++ b/vl.c
@@ -2748,9 +2748,9 @@ static const QEMUOption *lookup_opt(int argc, char **argv,
return popt;
}
-static MachineClass *select_machine(MachineClass *dflt)
+static MachineClass *select_machine(void)
{
- MachineClass *machine_class = dflt;
+ MachineClass *machine_class = find_default_machine();
const char *optarg;
QemuOpts *opts;
Location loc;
@@ -4067,7 +4067,7 @@ int main(int argc, char **argv, char **envp)
replay_configure(icount_opts);
- machine_class = select_machine(find_default_machine());
+ machine_class = select_machine();
set_memory_options(&ram_slots, &maxram_size, machine_class);
>
> Reviewed-by: Marcel Apfelbaum <address@hidden>
Thanks!
- Re: [Qemu-devel] [PATCH v2 2/4] vl: Reset location after handling command-line arguments, (continued)