This series is a follow up to Stefan's work to eradicate most calls to
exit() we currently have in the virtio code.

It addresses all exit() call sites in the blk, net and scsi device code,
where the error is about a missing or malformed in/out header sent by
the guest. They are converted to use virtio_error() and stop any processing,
instead of exiting.

The remaining call sites are related to a host misconfiguration or a
migration stream issue.

The 9P code currently calls assert() instead of exit(), but it also about
malformed or missing headers, so it gets converted the same way.

Next work will be to check all assert() call sites in the device code, in
case some of them actually refer to a bug in the guest, and should be
converted to use virtio_error() as well.


Greg Kurz (9):
      virtio-9p: add parentheses to sizeof operator
      virtio-blk: turn virtio_blk_handle_request() into a static function
      virtio-9p: handle handle_9p_output() error
      virtio-blk: handle virtio_blk_handle_request() errors
      virtio-net: handle virtio_net_handle_ctrl() error
      virtio-net: handle virtio_net_receive() errors
      virtio-net: handle virtio_net_flush_tx() errors
      virtio-scsi: convert virtio_scsi_bad_req() to use virtio_error()
      virtio-scsi: handle virtio_scsi_set_config() error

 hw/9pfs/virtio-9p-device.c     |   24 ++++++++++++++-----
 hw/block/virtio-blk.c          |   28 ++++++++++++++--------
 hw/net/virtio-net.c            |   51 +++++++++++++++++++++++-----------------
 hw/scsi/virtio-scsi.c          |   23 ++++++++++--------
 include/hw/virtio/virtio-blk.h |    2 --
 5 files changed, 78 insertions(+), 50 deletions(-)


Reply via email to