QEMU doesn't expect any payload for the reply of VHOST_USER_SET_LOG_BASE request, so don't send any. Note that the Vhost-user specification isn't clear about it and would need to be fixed.
Fixes: 54f9e32305d4 ("vhost: handle dirty pages logging request") Cc: sta...@dpdk.org Reported-by: Ilya Maximets <i.maxim...@samsung.com> Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com> Acked-by: Ilya Maximets <i.maxim...@samsung.com> --- lib/librte_vhost/vhost_user.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c index a7729990d..1ef02c943 100644 --- a/lib/librte_vhost/vhost_user.c +++ b/lib/librte_vhost/vhost_user.c @@ -1286,7 +1286,11 @@ vhost_user_set_log_base(struct virtio_net **pdev, struct VhostUserMsg *msg) dev->log_base = dev->log_addr + off; dev->log_size = size; - msg->size = sizeof(msg->payload.u64); + /* + * The spec is not clear about it (yet), but QEMU doesn't expect + * any payload in the reply. + */ + msg->size = 0; return VH_RESULT_REPLY; } -- 2.17.1