Multiple instances make no sense.

Cc: "Michael S. Tsirkin" <[email protected]>
Cc: Ben Warren <[email protected]>
Cc: Igor Mammedov <[email protected]>
Signed-off-by: Laszlo Ersek <[email protected]>
---
 hw/acpi/vmgenid.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/hw/acpi/vmgenid.c b/hw/acpi/vmgenid.c
index c3ddcc8e7cb0..b5c0dfcf19e1 100644
--- a/hw/acpi/vmgenid.c
+++ b/hw/acpi/vmgenid.c
@@ -214,6 +214,8 @@ static Property vmgenid_properties[] = {
 static void vmgenid_realize(DeviceState *dev, Error **errp)
 {
     VmGenIdState *vms = VMGENID(dev);
+    Object *one_vmgenid;
+    bool ambiguous;
 
     if (!vms->write_pointer_available) {
         error_setg(errp, "%s requires DMA write support in fw_cfg, "
@@ -221,6 +223,14 @@ static void vmgenid_realize(DeviceState *dev, Error **errp)
         return;
     }
 
+    one_vmgenid = object_resolve_path_type("", VMGENID_DEVICE, &ambiguous);
+    if (one_vmgenid == NULL) {
+        assert(ambiguous);
+        error_setg(errp, "at most one %s device is permitted", VMGENID_DEVICE);
+        return;
+    }
+    assert(one_vmgenid == OBJECT(vms));
+
     qemu_register_reset(vmgenid_handle_reset, vms);
 }
 
-- 
2.9.3


Reply via email to