qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2] vl.c: fix regression when reading machine type from config file
@ 2015-01-07 11:34 Marcel Apfelbaum
  2015-01-07 11:35 ` Paolo Bonzini
  2015-01-07 11:36 ` Marcel Apfelbaum
  0 siblings, 2 replies; 4+ messages in thread
From: Marcel Apfelbaum @ 2015-01-07 11:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: marcel, pbonzini, armbru

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>
---
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 | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/vl.c b/vl.c
index 7786b2f..da69dba 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,17 +3417,14 @@ 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;
+               break;
              case QEMU_OPTION_no_kvm:
                 olist = qemu_find_opts("machine");
                 qemu_opts_parse(olist, "accel=tcg", 0);
@@ -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();
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH v2] vl.c: fix regression when reading machine type from config file
  2015-01-07 11:34 [Qemu-devel] [PATCH v2] vl.c: fix regression when reading machine type from config file Marcel Apfelbaum
@ 2015-01-07 11:35 ` Paolo Bonzini
  2015-01-07 12:12   ` Marcel Apfelbaum
  2015-01-07 11:36 ` Marcel Apfelbaum
  1 sibling, 1 reply; 4+ messages in thread
From: Paolo Bonzini @ 2015-01-07 11:35 UTC (permalink / raw)
  To: Marcel Apfelbaum, qemu-devel; +Cc: armbru



On 07/01/2015 12:34, 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>
> ---
> 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 | 17 +++++++++--------
>  1 file changed, 9 insertions(+), 8 deletions(-)
> 
> diff --git a/vl.c b/vl.c
> index 7786b2f..da69dba 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,17 +3417,14 @@ 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;
> +               break;

Unnecessary whitespace change? :(

>               case QEMU_OPTION_no_kvm:
>                  olist = qemu_find_opts("machine");
>                  qemu_opts_parse(olist, "accel=tcg", 0);
> @@ -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();
> 

Looks good apart from that.

Paolo

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH v2] vl.c: fix regression when reading machine type from config file
  2015-01-07 11:34 [Qemu-devel] [PATCH v2] vl.c: fix regression when reading machine type from config file Marcel Apfelbaum
  2015-01-07 11:35 ` Paolo Bonzini
@ 2015-01-07 11:36 ` Marcel Apfelbaum
  1 sibling, 0 replies; 4+ messages in thread
From: Marcel Apfelbaum @ 2015-01-07 11:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-stable

On 01/07/2015 01:34 PM, 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.

I sent first the patch only to reviewers and not to the list!
I am sorry about that.
I also didn't actually CC-ed the stable list, doing it now...

Thanks,
Marcel

>
> Cc: qemu-stable@nongnu.org
> Reported-by: William Dauchy <william@gandi.net>
> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
> ---
> 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 | 17 +++++++++--------
>   1 file changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/vl.c b/vl.c
> index 7786b2f..da69dba 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,17 +3417,14 @@ 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;
> +               break;
>                case QEMU_OPTION_no_kvm:
>                   olist = qemu_find_opts("machine");
>                   qemu_opts_parse(olist, "accel=tcg", 0);
> @@ -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();
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH v2] vl.c: fix regression when reading machine type from config file
  2015-01-07 11:35 ` Paolo Bonzini
@ 2015-01-07 12:12   ` Marcel Apfelbaum
  0 siblings, 0 replies; 4+ messages in thread
From: Marcel Apfelbaum @ 2015-01-07 12:12 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel; +Cc: armbru

On 01/07/2015 01:35 PM, Paolo Bonzini wrote:
>
>
> On 07/01/2015 12:34, 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>
>> ---
>> 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 | 17 +++++++++--------
>>   1 file changed, 9 insertions(+), 8 deletions(-)
>>
>> diff --git a/vl.c b/vl.c
>> index 7786b2f..da69dba 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,17 +3417,14 @@ 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;
>> +               break;
>
> Unnecessary whitespace change? :(
Ooops! Sent v3, thanks for catching it!
Marcel

>
>>                case QEMU_OPTION_no_kvm:
>>                   olist = qemu_find_opts("machine");
>>                   qemu_opts_parse(olist, "accel=tcg", 0);
>> @@ -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();
>>
>
> Looks good apart from that.
>
> Paolo
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-01-07 14:24 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-07 11:34 [Qemu-devel] [PATCH v2] vl.c: fix regression when reading machine type from config file Marcel Apfelbaum
2015-01-07 11:35 ` Paolo Bonzini
2015-01-07 12:12   ` Marcel Apfelbaum
2015-01-07 11:36 ` Marcel Apfelbaum

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).