]> git.proxmox.com Git - mirror_qemu.git/commitdiff
char: emit the OPENED event only when a new char connection is opened
authorAmit Shah <amit.shah@redhat.com>
Wed, 7 Oct 2009 13:01:17 +0000 (18:31 +0530)
committerAnthony Liguori <aliguori@us.ibm.com>
Wed, 21 Oct 2009 18:35:37 +0000 (13:35 -0500)
The OPENED event gets sent also when qemu resets its state initially.
The consumers of the event aren't interested in receiving this event
on reset.

Patchworks-ID: 35288
Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
qemu-char.c
qemu-char.h

index 47576899935e76f0f2643617f32b138d8a97fdad..0fd402c46d1940e24302d815edf1d586acb775ea 100644 (file)
@@ -119,7 +119,12 @@ static void qemu_chr_event(CharDriverState *s, int event)
 static void qemu_chr_reset_bh(void *opaque)
 {
     CharDriverState *s = opaque;
-    qemu_chr_event(s, CHR_EVENT_OPENED);
+
+    if (s->initial_reset_issued) {
+        qemu_chr_event(s, CHR_EVENT_OPENED);
+    } else {
+        s->initial_reset_issued = true;
+    }
     qemu_bh_delete(s->bh);
     s->bh = NULL;
 }
index 05fe15d8cd8a0a98decddb1ea0bbdd3bf039b6ae..409961d20549822e62cedec61bc4761062c8e07c 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef QEMU_CHAR_H
 #define QEMU_CHAR_H
 
+#include <stdbool.h>
 #include "qemu-common.h"
 #include "qemu-queue.h"
 #include "qemu-option.h"
@@ -66,6 +67,7 @@ struct CharDriverState {
     QEMUBH *bh;
     char *label;
     char *filename;
+    bool initial_reset_issued;
     QTAILQ_ENTRY(CharDriverState) next;
 };