[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/9] char: introduce fd_chr_detach()
From: |
Amit Shah |
Subject: |
[Qemu-devel] [PATCH 3/9] char: introduce fd_chr_detach() |
Date: |
Wed, 28 Aug 2013 10:40:45 +0530 |
Remove any registered callbacks if a frontend is detached.
CC: <address@hidden>
Signed-off-by: Amit Shah <address@hidden>
---
qemu-char.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/qemu-char.c b/qemu-char.c
index e235334..91ae1da 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -806,6 +806,17 @@ typedef struct FDCharDriver {
QTAILQ_ENTRY(FDCharDriver) node;
} FDCharDriver;
+
+static void fd_chr_detach(struct CharDriverState *chr)
+{
+ FDCharDriver *s = chr->opaque;
+
+ if (s->fd_in_tag) {
+ io_remove_watch_poll(s->fd_in_tag);
+ s->fd_in_tag = 0;
+ }
+}
+
static int fd_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
{
FDCharDriver *s = chr->opaque;
@@ -913,6 +924,7 @@ static CharDriverState *qemu_chr_open_fd(int fd_in, int
fd_out)
chr->chr_write = fd_chr_write;
chr->chr_update_read_handler = fd_chr_update_read_handler;
chr->chr_close = fd_chr_close;
+ chr->chr_detach = fd_chr_detach;
return chr;
}
--
1.8.3.1
- [Qemu-devel] [PATCH 0/9] char: fix segfault on chardev detach, Amit Shah, 2013/08/28
- [Qemu-devel] [PATCH 3/9] char: introduce fd_chr_detach(),
Amit Shah <=
- [Qemu-devel] [PATCH 4/9] char: introduce pty_chr_detach(), Amit Shah, 2013/08/28
- [Qemu-devel] [PATCH 5/9] char: introduce udp_chr_detach(), Amit Shah, 2013/08/28
- [Qemu-devel] [PATCH 6/9] char: use the new fd_chr_detach to dedup code, Amit Shah, 2013/08/28
- [Qemu-devel] [PATCH 7/9] char: use the new pty_chr_detach to dedup code, Amit Shah, 2013/08/28
- [Qemu-devel] [PATCH 8/9] char: use the new udp_chr_detach to dedup code, Amit Shah, 2013/08/28
- [Qemu-devel] [PATCH 9/9] char: use the new tcp_chr_detach to dedup code, Amit Shah, 2013/08/28