store a pointer to QemuOpts in DeviceState, release it when zapping a device.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Gerd Hoffmann 2009-09-25 21:42:49 +02:00 committed by Anthony Liguori
parent 7101174e5c
commit ef80b46623
2 changed files with 4 additions and 0 deletions

View File

@ -218,6 +218,7 @@ DeviceState *qdev_device_add(QemuOpts *opts)
qdev_free(qdev); qdev_free(qdev);
return NULL; return NULL;
} }
qdev->opts = opts;
return qdev; return qdev;
} }
@ -276,6 +277,8 @@ void qdev_free(DeviceState *dev)
qemu_unregister_reset(dev->info->reset, dev); qemu_unregister_reset(dev->info->reset, dev);
if (dev->info->exit) if (dev->info->exit)
dev->info->exit(dev); dev->info->exit(dev);
if (dev->opts)
qemu_opts_del(dev->opts);
} }
QLIST_REMOVE(dev, sibling); QLIST_REMOVE(dev, sibling);
qemu_free(dev); qemu_free(dev);

View File

@ -29,6 +29,7 @@ enum DevState {
struct DeviceState { struct DeviceState {
const char *id; const char *id;
enum DevState state; enum DevState state;
QemuOpts *opts;
int hotplugged; int hotplugged;
DeviceInfo *info; DeviceInfo *info;
BusState *parent_bus; BusState *parent_bus;