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: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Stefan Weil 2010-12-16 19:33:22 +01:00 committed by Michael S. Tsirkin
parent af0669f0ed
commit 68694897e5

View File

@ -107,10 +107,7 @@ DeviceState *qdev_create(BusState *bus, const char *name)
DeviceInfo *info;
if (!bus) {
if (!main_system_bus) {
main_system_bus = qbus_create(&system_bus_info, NULL, "main-system-bus");
}
bus = main_system_bus;
bus = sysbus_get_default();
}
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)
{
if (!main_system_bus) {
main_system_bus = qbus_create(&system_bus_info, NULL,
"main-system-bus");
}
return main_system_bus;
}