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: 6fb2e173d20c9bbb5466183d33a3ad7dcd0375fa 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)
|
static bool vu_handle_get_max_memslots(VuDev *dev, VhostUserMsg *vmsg)
|
||||||
{
|
{
|
||||||
vmsg->flags = VHOST_USER_REPLY_MASK | VHOST_USER_VERSION;
|
vmsg_set_reply_u64(vmsg, VHOST_USER_MAX_RAM_SLOTS);
|
||||||
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));
|
|
||||||
}
|
|
||||||
|
|
||||||
DPRINT("u64: 0x%016"PRIx64"\n", (uint64_t) VHOST_USER_MAX_RAM_SLOTS);
|
DPRINT("u64: 0x%016"PRIx64"\n", (uint64_t) VHOST_USER_MAX_RAM_SLOTS);
|
||||||
|
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
|
Loading…
x
Reference in New Issue
Block a user