mirror of https://gitee.com/openkylin/qemu.git
qdev: sysbus_get_default must not return a NULL pointer (fix regression)
Every system should have some sort of main system bus,
so sysbus_get_default should always return a valid bus.
Without this patch, at least mipssim and malta no longer
start but raise a null pointer access exception (caused by
commit ec990eb622
).
Cc: Anthony Liguori <anthony@codemonkey.ws>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
e0087e6185
commit
fcd61af663
|
@ -107,10 +107,7 @@ DeviceState *qdev_create(BusState *bus, const char *name)
|
||||||
DeviceInfo *info;
|
DeviceInfo *info;
|
||||||
|
|
||||||
if (!bus) {
|
if (!bus) {
|
||||||
if (!main_system_bus) {
|
bus = sysbus_get_default();
|
||||||
main_system_bus = qbus_create(&system_bus_info, NULL, "main-system-bus");
|
|
||||||
}
|
|
||||||
bus = main_system_bus;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
info = qdev_find_info(bus->info, name);
|
info = qdev_find_info(bus->info, name);
|
||||||
|
@ -311,6 +308,10 @@ static int qdev_reset_one(DeviceState *dev, void *opaque)
|
||||||
|
|
||||||
BusState *sysbus_get_default(void)
|
BusState *sysbus_get_default(void)
|
||||||
{
|
{
|
||||||
|
if (!main_system_bus) {
|
||||||
|
main_system_bus = qbus_create(&system_bus_info, NULL,
|
||||||
|
"main-system-bus");
|
||||||
|
}
|
||||||
return main_system_bus;
|
return main_system_bus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue