From 93e2d9cf9151a5cbeef4fff1fdf26fdb989f060d Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Tue, 27 Jan 2026 07:29:52 -0800 Subject: [PATCH] vhost-user: frontend: Read the full reply for set_log_base This code was incorrectly assuming that it was a plain ack but instead the backend code in this repository (and the QEMU behaviour) is to expect a full struct of reply. Fixes: #217 Signed-off-by: Rob Bradford --- vhost/CHANGELOG.md | 1 + vhost/src/vhost_user/frontend.rs | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/vhost/CHANGELOG.md b/vhost/CHANGELOG.md index f72ae24..76ecfe7 100644 --- a/vhost/CHANGELOG.md +++ b/vhost/CHANGELOG.md @@ -9,6 +9,7 @@ ### Deprecated ### Fixed - [[#338]](https://github.com/rust-vmm/vhost/pull/338) vhost: fix double-locking in Backend to Frontend request handlers +- [[#342]](https://github.com/rust-vmm/vhost/pull/342) vhost-user: frontend: Read the full reply for set_log_base ## v0.15.0 diff --git a/vhost/src/vhost_user/frontend.rs b/vhost/src/vhost_user/frontend.rs index bda291f..420eba2 100644 --- a/vhost/src/vhost_user/frontend.rs +++ b/vhost/src/vhost_user/frontend.rs @@ -258,7 +258,8 @@ impl VhostBackend for Frontend { &log, Some(&[region.mmap_handle]), )?; - node.wait_for_ack(&hdr).map_err(|e| e.into()) + let _ = node.recv_reply::(&hdr)?; + Ok(()) } else { let _ = node.send_request_with_body(FrontendReq::SET_LOG_BASE, &val, None)?; Ok(())