From: Marc-André Lureau <marcandre.lur...@redhat.com> A chardev may stop trying to write if the associated can_read() callback returned 0. This happens when the monitor is suspended. The frontend is supposed to call qemu_chr_fe_accept_input() when it is ready to accept data again.
An issue was observed with a spice port: pending commands may be delayed, as the chardev is not flushed. Most chardev don't use the accept_input() callback, and instead check regularly if they can write. The ones that do use it are braille, mux, msmouse, spice (abstract), spicevmc, spiceport, wctablet. Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> Message-Id: <20180817173752.19136-1-marcandre.lur...@redhat.com> Signed-off-by: Markus Armbruster <arm...@redhat.com> --- monitor.c | 1 + 1 file changed, 1 insertion(+) diff --git a/monitor.c b/monitor.c index c049776603..c1add2ce09 100644 --- a/monitor.c +++ b/monitor.c @@ -4411,6 +4411,7 @@ void monitor_resume(Monitor *mon) assert(mon->rs); readline_show_prompt(mon->rs); } + qemu_chr_fe_accept_input(&mon->chr); } trace_monitor_suspend(mon, -1); } -- 2.17.1