vl.c: fix regression when reading machine type from config file
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> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									e76d442043
								
							
						
					
					
						commit
						364c3e6b8d
					
				
							
								
								
									
										15
									
								
								vl.c
								
								
								
								
							
							
						
						
									
										15
									
								
								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();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue