qdev: Don't abort() in case globals can't be set
It would be much better if we didn't terminate QEMU inside
device_post_init(), but at least exiting cleanly is better than aborting
and dumping core.
Before this patch:
    $ qemu-system-x86_64 -global cpu.xxx=y
    qemu-system-x86_64: Property '.xxx' not found
    Aborted (core dumped)
After this patch:
    $ qemu-system-x86_64 -global cpu.xxx=y
    qemu-system-x86_64: Property '.xxx' not found
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-By: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
			
			
This commit is contained in:
		
				
					committed by
					
						 Michael S. Tsirkin
						Michael S. Tsirkin
					
				
			
			
				
	
			
			
			
						parent
						
							b7c9285b8d
						
					
				
				
					commit
					319627006a
				
			| @@ -957,7 +957,13 @@ static void device_initfn(Object *obj) | ||||
|  | ||||
| static void device_post_init(Object *obj) | ||||
| { | ||||
|     qdev_prop_set_globals(DEVICE(obj), &error_abort); | ||||
|     Error *err = NULL; | ||||
|     qdev_prop_set_globals(DEVICE(obj), &err); | ||||
|     if (err) { | ||||
|         qerror_report_err(err); | ||||
|         error_free(err); | ||||
|         exit(EXIT_FAILURE); | ||||
|     } | ||||
| } | ||||
|  | ||||
| /* Unlink device from bus and free the structure.  */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user