summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmit Shah <amit.shah@redhat.com>2009-10-07 18:31:17 +0530
committerAnthony Liguori <aliguori@us.ibm.com>2009-10-21 13:35:37 -0500
commit6cfa64de908d67fb6f6b6e3ae4888dd863f69e44 (patch)
tree901bd2991a045256e453d98af0e977226abf3b50
parentb6b8df560c4cf7de53158ae91e2c0d3cc971f01e (diff)
char: emit the OPENED event only when a new char connection is opened
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>
-rw-r--r--qemu-char.c7
-rw-r--r--qemu-char.h2
2 files changed, 8 insertions, 1 deletions
diff --git a/qemu-char.c b/qemu-char.c
index 4757689993..0fd402c46d 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -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;
}
diff --git a/qemu-char.h b/qemu-char.h
index 05fe15d8cd..409961d205 100644
--- a/qemu-char.h
+++ b/qemu-char.h
@@ -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;
};