aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/qdev.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/hw/qdev.c b/hw/qdev.c
index 8bf86a5..3fe811f 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -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);
}