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 (7): 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 | 14 ++++++++++-- hw/block/virtio-blk.c | 27 +++++++++++++++-------- hw/net/virtio-net.c | 51 +++++++++++++++++++++++++------------------- hw/scsi/virtio-scsi.c | 21 ++++++++++-------- 4 files changed, 70 insertions(+), 43 deletions(-) -- Greg