diff options
author | Alexander Graf <agraf@suse.de> | 2010-04-01 18:42:39 +0200 |
---|---|---|
committer | Aurelien Jarno <aurelien@aurel32.net> | 2010-04-09 22:03:22 +0200 |
commit | 73cdf3f2c97703a89b026d3a42c1120ba05fe37d (patch) | |
tree | 8dbe009563fe5f9fe6455111618fa9b0b8f44651 /qemu-char.h | |
parent | 01c0bef1625d8e5d6d5c6abaf413214d667615ad (diff) | |
download | qemu-73cdf3f2c97703a89b026d3a42c1120ba05fe37d.tar.gz qemu-73cdf3f2c97703a89b026d3a42c1120ba05fe37d.tar.bz2 qemu-73cdf3f2c97703a89b026d3a42c1120ba05fe37d.zip |
Always notify consumers of char devices if they're open
When using virtio-console on s390, the input doesn't work.
The root of the problem is rather simple. What happens is the following:
1) create character device for stdio
2) char device is done creating, sends OPENED event
3) virtio-console adds handlers
4) no event comes because the char device is open already
5) virtio-console doesn't accept input because it didn't
receive an OPENED event
To make that sure virtio-console gets notified that the character device
is open even when it's been open from the beginning, this patch introduces
a variable that keeps track of the opened state. If the device is open when
the event handlers get installed, we just notify the handler.
This fixes input with virtio-console on s390.
Signed-off-by: Alexander Graf <agraf@suse.de>
Acked-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'qemu-char.h')
-rw-r--r-- | qemu-char.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/qemu-char.h b/qemu-char.h index 3a9427be67..e3a07838a4 100644 --- a/qemu-char.h +++ b/qemu-char.h @@ -67,6 +67,7 @@ struct CharDriverState { QEMUBH *bh; char *label; char *filename; + int opened; QTAILQ_ENTRY(CharDriverState) next; }; |