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 v3: - addressed comment from MST (patch 3) -- 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 | 59 ++++++++++++++++++++++++++++++++++++-------- hw/9pfs/xen-9p-backend.c | 3 +- 4 files changed, 72 insertions(+), 22 deletions(-)