qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 2/2] hw/acpi/vmgenid: prevent more than one vmgenid


From: Laszlo Ersek
Subject: [Qemu-devel] [PATCH 2/2] hw/acpi/vmgenid: prevent more than one vmgenid device
Date: Mon, 20 Mar 2017 12:59:51 +0100

Multiple instances make no sense.

Cc: "Michael S. Tsirkin" <address@hidden>
Cc: Ben Warren <address@hidden>
Cc: Igor Mammedov <address@hidden>
Signed-off-by: Laszlo Ersek <address@hidden>
---
 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

[Prev in Thread] Current Thread [Next in Thread]