When a port returns an error for not consuming data, we can only handle
the -EAGAIN error type.  Any other error isn't handled.  Print out a
message indicating this and the error returned.

Signed-off-by: Amit Shah <amit.s...@redhat.com>
---
 hw/virtio-serial-bus.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c
index a82fbe9..8b715b2 100644
--- a/hw/virtio-serial-bus.c
+++ b/hw/virtio-serial-bus.c
@@ -155,6 +155,8 @@ static void do_flush_queued_data(VirtIOSerialPort *port, 
VirtQueue *vq,
                                         buf_size);
             if (ret < 0 && ret != -EAGAIN) {
                 /* We don't handle any other type of errors here */
+                error_report("%s: unexpected return %zd, aborting.\n",
+                             __func__, ret);
                 abort();
             }
             if (ret == -EAGAIN || (ret >= 0 && ret < buf_size)) {
-- 
1.7.4


Reply via email to