diff options
| author | Peter Maydell | 2017-01-25 18:54:14 +0100 |
|---|---|---|
| committer | Peter Maydell | 2017-01-25 18:54:14 +0100 |
| commit | c7f1cf01b8245762ca5864e835d84f6677ae8b1f (patch) | |
| tree | 52693e41043f4551db64e90833eccff78919b423 /tests | |
| parent | Merge remote-tracking branch 'remotes/xtensa/tags/20170124-xtensa' into staging (diff) | |
| parent | 9pfs: fix offset error in v9fs_xattr_read() (diff) | |
| download | qemu-c7f1cf01b8245762ca5864e835d84f6677ae8b1f.tar.gz qemu-c7f1cf01b8245762ca5864e835d84f6677ae8b1f.tar.xz qemu-c7f1cf01b8245762ca5864e835d84f6677ae8b1f.zip | |
Merge remote-tracking branch 'remotes/gkurz/tags/for-upstream' into staging
This pull request fixes a 2.9 regression and a long standing bug that can
cause 9p clients to hang. Other patches are minor enhancements.
# gpg: Signature made Wed 25 Jan 2017 10:12:27 GMT
# gpg: using DSA key 0x02FC3AEB0101DBC2
# gpg: Good signature from "Greg Kurz <groug@kaod.org>"
# gpg: aka "Greg Kurz <groug@free.fr>"
# gpg: aka "Greg Kurz <gkurz@fr.ibm.com>"
# gpg: aka "Greg Kurz <gkurz@linux.vnet.ibm.com>"
# gpg: aka "Gregory Kurz (Groug) <groug@free.fr>"
# gpg: aka "Gregory Kurz (Cimai Technology) <gkurz@cimai.com>"
# gpg: aka "Gregory Kurz (Meiosys Technology) <gkurz@meiosys.com>"
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 2BD4 3B44 535E C0A7 9894 DBA2 02FC 3AEB 0101 DBC2
* remotes/gkurz/tags/for-upstream:
9pfs: fix offset error in v9fs_xattr_read()
9pfs: local: trivial cosmetic fix in pwritev op
9pfs: fix off-by-one error in PDU free list
tests: virtio-9p: improve error reporting
9pfs: add missing coroutine_fn annotations
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/virtio-9p-test.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/tests/virtio-9p-test.c b/tests/virtio-9p-test.c index 060407b20e..9556291567 100644 --- a/tests/virtio-9p-test.c +++ b/tests/virtio-9p-test.c @@ -236,6 +236,16 @@ static void v9fs_req_send(P9Req *req) req->t_off = 0; } +static const char *rmessage_name(uint8_t id) +{ + return + id == P9_RLERROR ? "RLERROR" : + id == P9_RVERSION ? "RVERSION" : + id == P9_RATTACH ? "RATTACH" : + id == P9_RWALK ? "RWALK" : + "<unknown>"; +} + static void v9fs_req_recv(P9Req *req, uint8_t id) { QVirtIO9P *v9p = req->v9p; @@ -258,11 +268,15 @@ static void v9fs_req_recv(P9Req *req, uint8_t id) g_assert_cmpint(hdr.size, <=, P9_MAX_SIZE); g_assert_cmpint(hdr.tag, ==, req->tag); - if (hdr.id != id && hdr.id == P9_RLERROR) { - uint32_t err; - v9fs_uint32_read(req, &err); - g_printerr("Received Rlerror (%d) instead of Response %d\n", err, id); - g_assert_not_reached(); + if (hdr.id != id) { + g_printerr("Received response %d (%s) instead of %d (%s)\n", + hdr.id, rmessage_name(hdr.id), id, rmessage_name(id)); + + if (hdr.id == P9_RLERROR) { + uint32_t err; + v9fs_uint32_read(req, &err); + g_printerr("Rlerror has errno %d (%s)\n", err, strerror(err)); + } } g_assert_cmpint(hdr.id, ==, id); } |
