qemu-e2k/chardev
Marc-André Lureau d09c4a4787 chardev: fix backend events regression with mux chardev
Kirill noticied that on recent versions on QEMU he was not able to
trigger SysRq to invoke debug capabilites of Linux Kernel.  He tracked
it down to qemu_chr_be_event() ignoring CHR_EVENT_BREAK due s->be
being NULL. The bug was introduced in 2.8, commit a4afa548fc ("char:
move front end handlers in CharBackend"). Since the commit, the
qemu_chr_be_event() failed to deliver CHR_EVENT_BREAK due to
qemu_chr_fe_init() does not set s->be in case of mux.

Let's fix this by teaching mux to send an event to the frontend with
the focus.

Reported-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Fixes: a4afa548fc ("char: move front end handlers in CharBackend")
Message-Id: <20171103152824.21948-2-marcandre.lureau@redhat.com>
Tested-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2017-12-21 09:30:32 +01:00
..
Makefile.objs buildsys: Move brlapi libs to per object 2017-09-22 10:20:34 +08:00
baum.c baum: Truncate braille device size to 84x1 2017-12-21 09:22:44 +01:00
char-console.c chardev: move headers to include/chardev 2017-06-02 11:33:52 +04:00
char-fd.c chardev: remove context in chr_update_read_handler 2017-09-22 21:07:27 +02:00
char-fe.c chardev: new qemu_chr_be_update_read_handlers() 2017-09-22 21:07:27 +02:00
char-file.c chardev: move headers to include/chardev 2017-06-02 11:33:52 +04:00
char-io.c chardev: move headers to include/chardev 2017-06-02 11:33:52 +04:00
char-mux.c chardev: fix backend events regression with mux chardev 2017-12-21 09:30:32 +01:00
char-null.c chardev: move headers to include/chardev 2017-06-02 11:33:52 +04:00
char-parallel.c chardev: move headers to include/chardev 2017-06-02 11:33:52 +04:00
char-pipe.c chardev: move headers to include/chardev 2017-06-02 11:33:52 +04:00
char-pty.c chardev: remove context in chr_update_read_handler 2017-09-22 21:07:27 +02:00
char-ringbuf.c chardev: move headers to include/chardev 2017-06-02 11:33:52 +04:00
char-serial.c chardev: move headers to include/chardev 2017-06-02 11:33:52 +04:00
char-socket.c char: don't skip client cleanup if 'connected' flag is unset 2017-10-12 12:10:37 +02:00
char-stdio.c chardev: move headers to include/chardev 2017-06-02 11:33:52 +04:00
char-udp.c chardev: remove context in chr_update_read_handler 2017-09-22 21:07:27 +02:00
char-win-stdio.c chardev: move headers to include/chardev 2017-06-02 11:33:52 +04:00
char-win.c chardev: move headers to include/chardev 2017-06-02 11:33:52 +04:00
char.c chardev: fix backend events regression with mux chardev 2017-12-21 09:30:32 +01:00
msmouse.c char: move char devices to chardev/ 2017-06-02 11:33:53 +04:00
spice.c char: move char devices to chardev/ 2017-06-02 11:33:53 +04:00
testdev.c char: move char devices to chardev/ 2017-06-02 11:33:53 +04:00
trace-events docs: fix broken paths to docs/devel/tracing.txt 2017-07-31 13:12:53 +03:00
wctablet.c misc: remove headers implicitly included 2017-12-18 17:07:02 +03:00