diff mbox

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

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

Commit Message

Marcel Apfelbaum Jan. 6, 2015, 5:41 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>
---
 vl.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Paolo Bonzini Jan. 6, 2015, 7:44 p.m. UTC | #1
On 06/01/2015 18:41, 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>
> ---
>  vl.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/vl.c b/vl.c
> index 7786b2f..ecd8c93 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -3659,6 +3659,11 @@ int main(int argc, char **argv, char **envp)
>                              strerror(-ret));
>                          exit(1);
>                      }
> +                    opts = qemu_get_machine_opts();
> +                    optarg = qemu_opt_get(opts, "type");
> +                    if (optarg) {
> +                        machine_class = machine_parse(optarg);
> +                    }
>                      break;
>                  }
>              case QEMU_OPTION_spice:
> 

This suggests that these five lines should be moved after the switch,
and "-M" should become simply a synonym of "-machine" (that's the other
place where we invoke machine_parse).

Paolo
Marcel Apfelbaum Jan. 7, 2015, 10:49 a.m. UTC | #2
On 01/06/2015 09:44 PM, Paolo Bonzini wrote:
>
>
> On 06/01/2015 18:41, 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>
>> ---
>>   vl.c | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/vl.c b/vl.c
>> index 7786b2f..ecd8c93 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -3659,6 +3659,11 @@ int main(int argc, char **argv, char **envp)
>>                               strerror(-ret));
>>                           exit(1);
>>                       }
>> +                    opts = qemu_get_machine_opts();
>> +                    optarg = qemu_opt_get(opts, "type");
>> +                    if (optarg) {
>> +                        machine_class = machine_parse(optarg);
>> +                    }
>>                       break;
>>                   }
>>               case QEMU_OPTION_spice:
>>
>
> This suggests that these five lines should be moved after the switch,
> and "-M" should become simply a synonym of "-machine" (that's the other
> place where we invoke machine_parse).

Hi Paolo,
Thanks for the review.

It makes sense. I will change this and submit again.

Thanks,
Marcel

>
> Paolo
>
diff mbox

Patch

diff --git a/vl.c b/vl.c
index 7786b2f..ecd8c93 100644
--- a/vl.c
+++ b/vl.c
@@ -3659,6 +3659,11 @@  int main(int argc, char **argv, char **envp)
                             strerror(-ret));
                         exit(1);
                     }
+                    opts = qemu_get_machine_opts();
+                    optarg = qemu_opt_get(opts, "type");
+                    if (optarg) {
+                        machine_class = machine_parse(optarg);
+                    }
                     break;
                 }
             case QEMU_OPTION_spice: