2012-12-16 23:27:22 +00:00
|
|
|
From 58c0c0de01663aab4e8fdd03c05e2762a35d77a8 Mon Sep 17 00:00:00 2001
|
2012-01-13 19:46:23 +00:00
|
|
|
From: Amit Shah <amit.shah@redhat.com>
|
|
|
|
Date: Fri, 2 Dec 2011 15:42:55 +0530
|
2012-12-16 23:27:22 +00:00
|
|
|
Subject: [PATCH] char: Disable write callback if throttled chardev is detached
|
2012-01-13 19:46:23 +00:00
|
|
|
|
|
|
|
If a throttled chardev is detached from the frontend device, all future
|
|
|
|
callbacks should be suppressed. Not doing this results in a segfault.
|
|
|
|
|
|
|
|
Bugzilla: 745758
|
|
|
|
Upstream: Not applicable, since throttling is a RHEL6-only feature.
|
|
|
|
|
|
|
|
Signed-off-by: Amit Shah <amit.shah@redhat.com>
|
2012-08-28 15:15:48 +00:00
|
|
|
Signed-off-by: Cole Robinson <crobinso@redhat.com>
|
2012-01-13 19:46:23 +00:00
|
|
|
---
|
2012-08-06 19:53:39 +00:00
|
|
|
qemu-char.c | 5 +++++
|
2012-07-05 09:22:23 +00:00
|
|
|
1 file changed, 5 insertions(+)
|
2012-01-13 19:46:23 +00:00
|
|
|
|
|
|
|
diff --git a/qemu-char.c b/qemu-char.c
|
2012-10-28 18:05:07 +00:00
|
|
|
index bfc94a5..67a6d73 100644
|
2012-01-13 19:46:23 +00:00
|
|
|
--- a/qemu-char.c
|
|
|
|
+++ b/qemu-char.c
|
2012-07-05 09:22:23 +00:00
|
|
|
@@ -223,6 +223,11 @@ void qemu_chr_add_handlers(CharDriverState *s,
|
2012-01-13 19:46:23 +00:00
|
|
|
++s->avail_connections;
|
|
|
|
}
|
|
|
|
if (!handlers) {
|
|
|
|
+ if (s->write_blocked) {
|
|
|
|
+ /* Ensure we disable the callback if we were throttled */
|
|
|
|
+ s->chr_disable_write_fd_handler(s);
|
|
|
|
+ /* s->write_blocked is cleared below */
|
|
|
|
+ }
|
|
|
|
handlers = &null_handlers;
|
|
|
|
}
|
|
|
|
s->chr_can_read = handlers->fd_can_read;
|