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>
(cherry picked from commit 364c3e6b8d)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
			
			
This commit is contained in:
		
				
					committed by
					
						 Michael Roth
						Michael Roth
					
				
			
			
				
	
			
			
			
						parent
						
							cb3360dbdd
						
					
				
				
					commit
					e1ce0c3cb7
				
			
							
								
								
									
										15
									
								
								vl.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								vl.c
									
									
									
									
									
								
							| @@ -2886,9 +2886,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); | ||||
| @@ -3506,16 +3503,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"); | ||||
| @@ -3807,6 +3801,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(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user