diff options
author | Luiz Capitulino | 2012-03-14 21:37:38 +0100 |
---|---|---|
committer | Luiz Capitulino | 2012-04-09 19:35:25 +0200 |
commit | 56f9107e439c32aa00d58d117a9b664551328f1e (patch) | |
tree | edd83ebd19c90a406e1d23c5dc5220593cbf5673 /hw/qdev.h | |
parent | Merge branch 'memory/core' of git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm (diff) | |
download | qemu-56f9107e439c32aa00d58d117a9b664551328f1e.tar.gz qemu-56f9107e439c32aa00d58d117a9b664551328f1e.tar.xz qemu-56f9107e439c32aa00d58d117a9b664551328f1e.zip |
qdev: qdev_unplug(): use error_set()
It currently uses qerror_report(), but next commit will convert
the drive_del command to the QAPI and this requires using
error_set().
One particularity of qerror_report() is that it knows when it's
running on monitor context or command-line context and prints the
error message accordingly. error_set() doesn't do this, so we
have to be careful not to drop error messages.
qdev_unplug() has three kinds of usages:
1. It's called when hot adding a device fails, to undo anything
that has been done before hitting the error
2. It's called by function monitor functions like device_del(),
to unplug a device
3. It's used by xen_platform.c in a way that doesn't _seem_ to
be in monitor context
Only item 2 can print an error message to the user, this commit
maintains that.
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Diffstat (limited to 'hw/qdev.h')
-rw-r--r-- | hw/qdev.h | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -7,6 +7,7 @@ #include "qemu-option.h" #include "qapi/qapi-visit-core.h" #include "qemu/object.h" +#include "error.h" typedef struct Property Property; @@ -148,7 +149,7 @@ int qdev_init(DeviceState *dev) QEMU_WARN_UNUSED_RESULT; void qdev_init_nofail(DeviceState *dev); void qdev_set_legacy_instance_id(DeviceState *dev, int alias_id, int required_for_version); -int qdev_unplug(DeviceState *dev); +void qdev_unplug(DeviceState *dev, Error **errp); void qdev_free(DeviceState *dev); int qdev_simple_unplug_cb(DeviceState *dev); void qdev_machine_creation_done(void); |