From 6cfa64de908d67fb6f6b6e3ae4888dd863f69e44 Mon Sep 17 00:00:00 2001 From: Amit Shah Date: Wed, 7 Oct 2009 18:31:17 +0530 Subject: [PATCH] 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 Signed-off-by: Anthony Liguori --- qemu-char.c | 7 ++++++- qemu-char.h | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/qemu-char.c b/qemu-char.c index 475768999..0fd402c46 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 05fe15d8c..409961d20 100644 --- a/qemu-char.h +++ b/qemu-char.h @@ -1,6 +1,7 @@ #ifndef QEMU_CHAR_H #define QEMU_CHAR_H +#include #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; };