提交 1de81d28 编写于 作者: A Anthony Liguori

qdev: fix hotplug when no -device is specified

The peripheral[-anon] containers are initialized lazily but since they sit on
sysbus, they can not be created after realize.  This was causing an abort() to
occur during hotplug if no -device option was used.

This was spotted by qemu-test::device-add.sh
Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
上级 ab0115e1
......@@ -1529,3 +1529,9 @@ void qdev_property_add_str(DeviceState *dev, const char *name,
qdev_property_release_str,
prop, errp);
}
void qdev_machine_init(void)
{
qdev_get_peripheral_anon();
qdev_get_peripheral();
}
......@@ -616,4 +616,12 @@ void qdev_property_add_str(DeviceState *dev, const char *name,
*/
char *qdev_get_type(DeviceState *dev, Error **errp);
/**
* @qdev_machine_init
*
* Initialize platform devices before machine init. This is a hack until full
* support for composition is added.
*/
void qdev_machine_init(void);
#endif
......@@ -3335,6 +3335,8 @@ int main(int argc, char **argv, char **envp)
}
qemu_add_globals();
qdev_machine_init();
machine->init(ram_size, boot_devices,
kernel_filename, kernel_cmdline, initrd_filename, cpu_model);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册