qdev: Fix -device and device_add to handle unsuitable bus gracefully

"device_add isa-serial,bus=pci.0" kills QEMU.  Not good.
This commit is contained in:
Markus Armbruster 2010-02-19 19:08:45 +01:00
parent 0f0bc3f1d5
commit 327867b62a

View file

@ -204,6 +204,11 @@ DeviceState *qdev_device_add(QemuOpts *opts)
path = qemu_opt_get(opts, "bus");
if (path != NULL) {
bus = qbus_find(path);
if (bus && bus->info != info->bus_info) {
error_report("Device '%s' can't go on a %s bus",
driver, bus->info->name);
return NULL;
}
} else {
bus = qbus_find_recursive(main_system_bus, NULL, info->bus_info);
}