]> Git Repo - qemu.git/blobdiff - backends/rng-egd.c
Merge remote-tracking branch 'bonzini/hw-dirs' into staging
[qemu.git] / backends / rng-egd.c
index 5e012e9e30402e36fe061f2dcad95d372cc24e54..9e5a5366f7f69399f76dbf612905b0c98b963d30 100644 (file)
@@ -10,8 +10,8 @@
  * See the COPYING file in the top-level directory.
  */
 
-#include "qemu/rng.h"
-#include "char/char.h"
+#include "sysemu/rng.h"
+#include "sysemu/char.h"
 #include "qapi/qmp/qerror.h"
 #include "hw/qdev.h" /* just for DEFINE_PROP_CHR */
 
@@ -149,6 +149,11 @@ static void rng_egd_opened(RngBackend *b, Error **errp)
         return;
     }
 
+    if (qemu_chr_fe_claim(s->chr) != 0) {
+        error_set(errp, QERR_DEVICE_IN_USE, s->chr_name);
+        return;
+    }
+
     /* FIXME we should resubmit pending requests when the CDS reconnects. */
     qemu_chr_add_handlers(s->chr, rng_egd_chr_can_read, rng_egd_chr_read,
                           NULL, s);
@@ -191,6 +196,7 @@ static void rng_egd_finalize(Object *obj)
 
     if (s->chr) {
         qemu_chr_add_handlers(s->chr, NULL, NULL, NULL, NULL);
+        qemu_chr_fe_release(s->chr);
     }
 
     g_free(s->chr_name);
This page took 0.024266 seconds and 4 git commands to generate.