Message ID | 20180817173752.19136-1-marcandre.lureau@redhat.com |
---|---|
State | New |
Headers | show |
Series | [v2] monitor: accept input on resume | expand |
Marc-André Lureau <marcandre.lureau@redhat.com> writes: > 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.lureau@redhat.com> > Acked-by: Markus Armbruster <armbru@redhat.com> > --- > monitor.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/monitor.c b/monitor.c > index a1999e396c..33823b035a 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -4407,6 +4407,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); > } Queued. Thanks!
diff --git a/monitor.c b/monitor.c index a1999e396c..33823b035a 100644 --- a/monitor.c +++ b/monitor.c @@ -4407,6 +4407,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); }