mirror of https://github.com/xemu-project/xemu.git
libvhost-user: Fix VHOST_USER_GET_MAX_MEM_SLOTS reply
With REPLY_NEEDED, libvhost-user sends both the acutal result and an
additional ACK reply for VHOST_USER_GET_MAX_MEM_SLOTS. This is
incorrect, the spec mandates that it behave the same with and without
REPLY_NEEDED because it always sends a reply.
Fixes: 6fb2e173d2
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20220627134500.94842-3-kwolf@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
ea06220600
commit
69a5daec06
|
@ -1827,18 +1827,11 @@ vu_handle_vring_kick(VuDev *dev, VhostUserMsg *vmsg)
|
|||
|
||||
static bool vu_handle_get_max_memslots(VuDev *dev, VhostUserMsg *vmsg)
|
||||
{
|
||||
vmsg->flags = VHOST_USER_REPLY_MASK | VHOST_USER_VERSION;
|
||||
vmsg->size = sizeof(vmsg->payload.u64);
|
||||
vmsg->payload.u64 = VHOST_USER_MAX_RAM_SLOTS;
|
||||
vmsg->fd_num = 0;
|
||||
|
||||
if (!vu_message_write(dev, dev->sock, vmsg)) {
|
||||
vu_panic(dev, "Failed to send max ram slots: %s\n", strerror(errno));
|
||||
}
|
||||
vmsg_set_reply_u64(vmsg, VHOST_USER_MAX_RAM_SLOTS);
|
||||
|
||||
DPRINT("u64: 0x%016"PRIx64"\n", (uint64_t) VHOST_USER_MAX_RAM_SLOTS);
|
||||
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
Loading…
Reference in New Issue