aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
};