• M
    hw: Propagate errors through qdev_prop_set_drive() · 9b3d111a
    Markus Armbruster 提交于
    Three kinds of callers:
    
    1. On failure, report the error and abort
    
       Passing &error_abort does the job.  No functional change.
    
    2. On failure, report the error and exit()
    
       This is qdev_prop_set_drive_nofail().  Error reporting moves from
       qdev_prop_set_drive() to its caller.  Because hiding away the error
       in the monitor right before exit() isn't helpful, replace
       qerror_report_err() by error_report_err().  Shouldn't make a
       difference, because qdev_prop_set_drive_nofail() should never be
       used in QMP context.
    
    3. On failure, report the error and recover
    
       This is usb_msd_init() and scsi_bus_legacy_add_drive().  Error
       reporting and freeing the error object moves from
       qdev_prop_set_drive() to its callers.
    
       Because usb_msd_init() can't run in QMP context, replace
       qerror_report_err() by error_report_err() there.
    
       No functional change.
    
       scsi_bus_legacy_add_drive() calling qerror_report_err() is of
       course inappropriate, but this commit merely makes it more obvious.
       The next one will clean it up.
    Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: NPeter Crosthwaite <peter.crosthwaite@xilinx.com>
    Message-Id: <1425925048-15482-3-git-send-email-armbru@redhat.com>
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    9b3d111a
virt.c 31.2 KB