diff mbox

[v3] vl.c: fix regression when reading machine type from config file

Message ID 1420632698-27461-1-git-send-email-marcel@redhat.com
State New
Headers show

Commit Message

Marcel Apfelbaum Jan. 7, 2015, 12:11 p.m. UTC
After 'Machine as QOM' series the machine type input triggers
the creation of the machine class.
If the machine type is set in the configuration file, the machine
class is not updated accordingly and remains the default.

Fixed that by querying the machine options after the configuration
file is loaded.

Cc: qemu-stable@nongnu.org
Reported-by: William Dauchy <william@gandi.net>
Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
---
v2 -> v3:
 - Addressed Paolo Bonzini's comments:
   - fixed whitespace
v1 -> v2:
 - Addressed Paolo Bonzini's comments:
   - moved the call to machine_parse after the switch
     and brought QEMU_OPTION_M near QEMU_OPTION_machine
  
 vl.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

Comments

Marcel Apfelbaum Jan. 7, 2015, 3:37 p.m. UTC | #1
On 01/07/2015 02:12 PM, Paolo Bonzini wrote:
>
>
> On 07/01/2015 13:11, Marcel Apfelbaum wrote:
>> After 'Machine as QOM' series the machine type input triggers
>> the creation of the machine class.
>> If the machine type is set in the configuration file, the machine
>> class is not updated accordingly and remains the default.
>>
>> Fixed that by querying the machine options after the configuration
>> file is loaded.
>>
>> Cc: qemu-stable@nongnu.org
>> Reported-by: William Dauchy <william@gandi.net>
>> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
>> ---
>> v2 -> v3:
>>   - Addressed Paolo Bonzini's comments:
>>     - fixed whitespace
>> v1 -> v2:
>>   - Addressed Paolo Bonzini's comments:
>>     - moved the call to machine_parse after the switch
>>       and brought QEMU_OPTION_M near QEMU_OPTION_machine
>>
>>   vl.c | 15 ++++++++-------
>>   1 file changed, 8 insertions(+), 7 deletions(-)
>>
>> diff --git a/vl.c b/vl.c
>> index 7786b2f..1a2da2b 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -2796,9 +2796,6 @@ int main(int argc, char **argv, char **envp)
>>                   exit(1);
>>               }
>>               switch(popt->index) {
>> -            case QEMU_OPTION_M:
>> -                machine_class = machine_parse(optarg);
>> -                break;
>>               case QEMU_OPTION_no_kvm_irqchip: {
>>                   olist = qemu_find_opts("machine");
>>                   qemu_opts_parse(olist, "kernel_irqchip=off", 0);
>> @@ -3420,16 +3417,13 @@ int main(int argc, char **argv, char **envp)
>>                   olist = qemu_find_opts("machine");
>>                   qemu_opts_parse(olist, "accel=kvm", 0);
>>                   break;
>> +            case QEMU_OPTION_M:
>>               case QEMU_OPTION_machine:
>>                   olist = qemu_find_opts("machine");
>>                   opts = qemu_opts_parse(olist, optarg, 1);
>>                   if (!opts) {
>>                       exit(1);
>>                   }
>> -                optarg = qemu_opt_get(opts, "type");
>> -                if (optarg) {
>> -                    machine_class = machine_parse(optarg);
>> -                }
>>                   break;
>>                case QEMU_OPTION_no_kvm:
>>                   olist = qemu_find_opts("machine");
>> @@ -3752,6 +3746,13 @@ int main(int argc, char **argv, char **envp)
>>               }
>>           }
>>       }
>> +
>> +    opts = qemu_get_machine_opts();
>> +    optarg = qemu_opt_get(opts, "type");
>> +    if (optarg) {
>> +        machine_class = machine_parse(optarg);
>> +    }
>> +
>>       loc_set_none();
>>
>>       os_daemonize();
>>
>
> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
>
Thanks Paolo,
Who can add this patch to his tree?

Thanks,
Marcel
Paolo Bonzini Jan. 7, 2015, 3:44 p.m. UTC | #2
On 07/01/2015 16:37, Marcel Apfelbaum wrote:
>>>
>>
>> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
>>
> Thanks Paolo,
> Who can add this patch to his tree?

I've done it.

Paolo
diff mbox

Patch

diff --git a/vl.c b/vl.c
index 7786b2f..1a2da2b 100644
--- a/vl.c
+++ b/vl.c
@@ -2796,9 +2796,6 @@  int main(int argc, char **argv, char **envp)
                 exit(1);
             }
             switch(popt->index) {
-            case QEMU_OPTION_M:
-                machine_class = machine_parse(optarg);
-                break;
             case QEMU_OPTION_no_kvm_irqchip: {
                 olist = qemu_find_opts("machine");
                 qemu_opts_parse(olist, "kernel_irqchip=off", 0);
@@ -3420,16 +3417,13 @@  int main(int argc, char **argv, char **envp)
                 olist = qemu_find_opts("machine");
                 qemu_opts_parse(olist, "accel=kvm", 0);
                 break;
+            case QEMU_OPTION_M:
             case QEMU_OPTION_machine:
                 olist = qemu_find_opts("machine");
                 opts = qemu_opts_parse(olist, optarg, 1);
                 if (!opts) {
                     exit(1);
                 }
-                optarg = qemu_opt_get(opts, "type");
-                if (optarg) {
-                    machine_class = machine_parse(optarg);
-                }
                 break;
              case QEMU_OPTION_no_kvm:
                 olist = qemu_find_opts("machine");
@@ -3752,6 +3746,13 @@  int main(int argc, char **argv, char **envp)
             }
         }
     }
+
+    opts = qemu_get_machine_opts();
+    optarg = qemu_opt_get(opts, "type");
+    if (optarg) {
+        machine_class = machine_parse(optarg);
+    }
+
     loc_set_none();
 
     os_daemonize();