The 9p protocol relies on a reliable transport, but the current code
treats transport errors (ie, failure to marshal or unmarshal) as if
they were coming from the backend. This doesn't make sense: if the
transport failed, we should notify the guest that the transport is
broken and needs to be reset, using transport specific means.

This series only modifies the virtio transport so that it can notify
the guest about transport failures.

Changes since v2:
- complete rework

--
Greg

---

Greg Kurz (4):
      virtio-9p: record element after sanity checks
      virtio-9p: message header is 7-byte long
      virtio-9p: break device if buffers are misconfigured
      9pfs: handle transport errors in pdu_complete()


 hw/9pfs/9p.c               |   25 +++++++++++++-------
 hw/9pfs/9p.h               |    7 +++++-
 hw/9pfs/virtio-9p-device.c |   56 ++++++++++++++++++++++++++++++++++++--------
 hw/9pfs/xen-9p-backend.c   |    3 ++
 4 files changed, 70 insertions(+), 21 deletions(-)


Reply via email to