Add helper to populate vhost-user message regions
When setting vhost-user memory tables, memory region descriptors must be copied from the vhost_dev struct to the vhost-user message. To avoid duplicating code in setting the memory tables, we should use a helper to populate this field. This change adds this helper. Signed-off-by: Raphael Norwitz <raphael.norwitz@nutanix.com> Message-Id: <1588533678-23450-2-git-send-email-raphael.norwitz@nutanix.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
This commit is contained in:
parent
4bcad76f4c
commit
ece99091c2
@ -407,6 +407,15 @@ static int vhost_user_set_log_base(struct vhost_dev *dev, uint64_t base,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void vhost_user_fill_msg_region(VhostUserMemoryRegion *dst,
|
||||
struct vhost_memory_region *src)
|
||||
{
|
||||
assert(src != NULL && dst != NULL);
|
||||
dst->userspace_addr = src->userspace_addr;
|
||||
dst->memory_size = src->memory_size;
|
||||
dst->guest_phys_addr = src->guest_phys_addr;
|
||||
}
|
||||
|
||||
static int vhost_user_fill_set_mem_table_msg(struct vhost_user *u,
|
||||
struct vhost_dev *dev,
|
||||
VhostUserMsg *msg,
|
||||
@ -417,6 +426,7 @@ static int vhost_user_fill_set_mem_table_msg(struct vhost_user *u,
|
||||
ram_addr_t offset;
|
||||
MemoryRegion *mr;
|
||||
struct vhost_memory_region *reg;
|
||||
VhostUserMemoryRegion region_buffer;
|
||||
|
||||
msg->hdr.request = VHOST_USER_SET_MEM_TABLE;
|
||||
|
||||
@ -441,12 +451,8 @@ static int vhost_user_fill_set_mem_table_msg(struct vhost_user *u,
|
||||
error_report("Failed preparing vhost-user memory table msg");
|
||||
return -1;
|
||||
}
|
||||
msg->payload.memory.regions[*fd_num].userspace_addr =
|
||||
reg->userspace_addr;
|
||||
msg->payload.memory.regions[*fd_num].memory_size =
|
||||
reg->memory_size;
|
||||
msg->payload.memory.regions[*fd_num].guest_phys_addr =
|
||||
reg->guest_phys_addr;
|
||||
vhost_user_fill_msg_region(®ion_buffer, reg);
|
||||
msg->payload.memory.regions[*fd_num] = region_buffer;
|
||||
msg->payload.memory.regions[*fd_num].mmap_offset = offset;
|
||||
fds[(*fd_num)++] = fd;
|
||||
} else if (track_ramblocks) {
|
||||
|
Loading…
Reference in New Issue
Block a user