summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Mammedov <imammedo@redhat.com>2014-09-26 09:28:40 +0000
committerAndreas Färber <afaerber@suse.de>2014-10-15 05:03:14 +0200
commit2d9a982f37cc7c427d655a828c5ffa3cc5753863 (patch)
tree97203426ab07e6149d226e8c7b1578fe96a85d38
parent5f4d917376fef99fe7f2e978b404cddc41727fa4 (diff)
downloadhqemu-2d9a982f37cc7c427d655a828c5ffa3cc5753863.zip
hqemu-2d9a982f37cc7c427d655a828c5ffa3cc5753863.tar.gz
qdev: Drop legacy hotplug fields/methods
It removes not needed anymore BusState::allow_hotplug field and DeviceClass::unplug callback. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
-rw-r--r--hw/core/qdev.c16
-rw-r--r--include/hw/qdev-core.h5
2 files changed, 4 insertions, 17 deletions
diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index 6439a23..3e58dd0 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -114,7 +114,6 @@ static void qbus_set_hotplug_handler_internal(BusState *bus, Object *handler,
object_property_set_link(OBJECT(bus), OBJECT(handler),
QDEV_HOTPLUG_HANDLER_PROPERTY, errp);
- bus->allow_hotplug = 1;
}
void qbus_set_hotplug_handler(BusState *bus, DeviceState *handler, Error **errp)
@@ -254,10 +253,7 @@ void qdev_unplug(DeviceState *dev, Error **errp)
hotplug_handler_unplug(dev->parent_bus->hotplug_handler, dev, errp);
}
} else {
- assert(dc->unplug != NULL);
- if (dc->unplug(dev) < 0) { /* legacy handler */
- error_set(errp, QERR_UNDEFINED_ERROR);
- }
+ assert(0);
}
}
@@ -294,17 +290,11 @@ void qbus_reset_all_fn(void *opaque)
}
/* can be used as ->unplug() callback for the simple cases */
-int qdev_simple_unplug_cb(DeviceState *dev)
-{
- /* just zap it */
- object_unparent(OBJECT(dev));
- return 0;
-}
-
void qdev_simple_device_unplug_cb(HotplugHandler *hotplug_dev,
DeviceState *dev, Error **errp)
{
- qdev_simple_unplug_cb(dev);
+ /* just zap it */
+ object_unparent(OBJECT(dev));
}
/* Like qdev_init(), but terminate program via error_report() instead of
diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
index 48e9579..01d7db4 100644
--- a/include/hw/qdev-core.h
+++ b/include/hw/qdev-core.h
@@ -126,7 +126,6 @@ typedef struct DeviceClass {
/* Private to qdev / bus. */
qdev_initfn init; /* TODO remove, once users are converted to realize */
- qdev_event unplug;
qdev_event exit; /* TODO remove, once users are converted to unrealize */
const char *bus_type;
} DeviceClass;
@@ -210,7 +209,6 @@ struct BusState {
Object obj;
DeviceState *parent;
const char *name;
- int allow_hotplug;
HotplugHandler *hotplug_handler;
int max_index;
bool realized;
@@ -264,7 +262,6 @@ void qdev_init_nofail(DeviceState *dev);
void qdev_set_legacy_instance_id(DeviceState *dev, int alias_id,
int required_for_version);
void qdev_unplug(DeviceState *dev, Error **errp);
-int qdev_simple_unplug_cb(DeviceState *dev);
void qdev_simple_device_unplug_cb(HotplugHandler *hotplug_dev,
DeviceState *dev, Error **errp);
void qdev_machine_creation_done(void);
@@ -370,6 +367,6 @@ void qbus_set_bus_hotplug_handler(BusState *bus, Error **errp);
static inline bool qbus_is_hotpluggable(BusState *bus)
{
- return bus->allow_hotplug || bus->hotplug_handler;
+ return bus->hotplug_handler;
}
#endif
OpenPOWER on IntegriCloud