Hi,

Commit 949055a2 "char: use a fixed idx for child muxed chr" introduced
a regression in mux usage, since it wrongly interpreted mux as muxing
various chr backend. Instead, it muxes frontends.

The first patch reverts the broken change, the following patches add
tracking to frontend handler, finally the last patch adds some tests
that would have helped to track the crash and the regression. There is
also a small fix for ringbuf.

Marc-André Lureau (9):
  Revert "char: use a fixed idx for child muxed chr"
  char: return a tag when adding the fe handlers
  char: add qemu_chr_remove_handlers()
  char: keep track of qemu_chr_add_handlers()
  char: warn on unused qemu_chr_add_handlers() result
  qdev: remove call to qemu_chr_add_handlers()
  char: handle qemu_chr_add_handlers() error
  ringbuf: fix chr_write return value
  tests: start chardev unit tests

 backends/rng-egd.c                |  13 ++-
 gdbstub.c                         |  14 ++-
 hw/arm/pxa2xx.c                   |  17 ++-
 hw/arm/strongarm.c                |  22 +++-
 hw/char/bcm2835_aux.c             |  15 ++-
 hw/char/cadence_uart.c            |  18 ++-
 hw/char/debugcon.c                |  33 +++---
 hw/char/digic-uart.c              |  14 ++-
 hw/char/escc.c                    |  20 +++-
 hw/char/etraxfs_ser.c             |  18 ++-
 hw/char/exynos4210_uart.c         |  21 +++-
 hw/char/grlib_apbuart.c           |  17 ++-
 hw/char/imx_serial.c              |  15 ++-
 hw/char/ipoctal232.c              |  23 +++-
 hw/char/lm32_juart.c              |  15 ++-
 hw/char/lm32_uart.c               |  15 ++-
 hw/char/mcf_uart.c                |   7 +-
 hw/char/milkymist-uart.c          |  15 ++-
 hw/char/pl011.c                   |  16 ++-
 hw/char/sclpconsole-lm.c          |  18 ++-
 hw/char/sclpconsole.c             |  12 +-
 hw/char/serial.c                  |  14 ++-
 hw/char/sh_serial.c               |   9 +-
 hw/char/spapr_vty.c               |  16 ++-
 hw/char/stm32f2xx_usart.c         |  15 ++-
 hw/char/virtio-console.c          |  17 ++-
 hw/char/xen_console.c             |  17 ++-
 hw/char/xilinx_uartlite.c         |  18 ++-
 hw/core/qdev-properties-system.c  |   1 -
 hw/ipmi/ipmi_bmc_extern.c         |  15 ++-
 hw/misc/ivshmem.c                 |  15 ++-
 hw/usb/ccid-card-passthru.c       |  18 ++-
 hw/usb/dev-serial.c               |  20 +++-
 hw/usb/redirect.c                 |  19 ++-
 monitor.c                         |  21 +++-
 net/colo-compare.c                |  37 ++++--
 net/filter-mirror.c               |  20 +++-
 net/slirp.c                       |  12 +-
 net/vhost-user.c                  |  20 ++--
 qemu-char.c                       | 173 +++++++++++++++++----------
 qtest.c                           |   7 +-
 stubs/monitor-init.c              |   2 +-
 tests/test-char.c                 | 238 ++++++++++++++++++++++++++++++++++++++
 tests/vhost-user-test.c           |   8 +-
 vl.c                              |   2 +-
 tests/Makefile.include            |   4 +
 include/hw/char/bcm2835_aux.h     |   1 +
 include/hw/char/cadence_uart.h    |   1 +
 include/hw/char/digic-uart.h      |   1 +
 include/hw/char/imx_serial.h      |   1 +
 include/hw/char/serial.h          |   1 +
 include/hw/char/stm32f2xx_usart.h |   1 +
 include/monitor/monitor.h         |   2 +-
 include/sysemu/char.h             |  40 ++++---
 54 files changed, 954 insertions(+), 190 deletions(-)
 create mode 100644 tests/test-char.c

-- 
2.10.0


Reply via email to