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:
parent
af0669f0ed
commit
68694897e5
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user