qdev: integrate reset
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
7fc2f2c086
commit
959f733a29
11
hw/qdev.c
11
hw/qdev.c
@ -214,12 +214,21 @@ DeviceState *qdev_device_add(QemuOpts *opts)
|
||||
calling this function. */
|
||||
int qdev_init(DeviceState *dev)
|
||||
{
|
||||
return dev->info->init(dev, dev->info);
|
||||
int rc;
|
||||
|
||||
rc = dev->info->init(dev, dev->info);
|
||||
if (rc < 0)
|
||||
return rc;
|
||||
if (dev->info->reset)
|
||||
qemu_register_reset(dev->info->reset, dev);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Unlink device from bus and free the structure. */
|
||||
void qdev_free(DeviceState *dev)
|
||||
{
|
||||
if (dev->info->reset)
|
||||
qemu_unregister_reset(dev->info->reset, dev);
|
||||
LIST_REMOVE(dev, sibling);
|
||||
qemu_free(dev);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user