On Fri, Feb 02, 2024 at 10:53:18PM +0100, David Hildenbrand wrote:
> We barely had mmap_offset set in the past. With virtio-mem and
> dynamic-memslots that will change.
> 
> In vu_add_mem_reg() and vu_set_mem_table_exec_postcopy(), we are
> performing pointer arithmetics, which is wrong.

Wrong how? I suspect you mean arithmetic on void * pointers is not portable?

> Let's simply
> use dev_region->mmap_addr instead of "void *mmap_addr".
> 
> Fixes: ec94c8e621de ("Support adding individual regions in libvhost-user")
> Fixes: 9bb38019942c ("vhost+postcopy: Send address back to qemu")
> Cc: Raphael Norwitz <raphael.norw...@nutanix.com>
> Signed-off-by: David Hildenbrand <da...@redhat.com>
> ---
>  subprojects/libvhost-user/libvhost-user.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/subprojects/libvhost-user/libvhost-user.c 
> b/subprojects/libvhost-user/libvhost-user.c
> index a3b158c671..7e515ed15d 100644
> --- a/subprojects/libvhost-user/libvhost-user.c
> +++ b/subprojects/libvhost-user/libvhost-user.c
> @@ -800,8 +800,8 @@ vu_add_mem_reg(VuDev *dev, VhostUserMsg *vmsg) {
>           * Return the address to QEMU so that it can translate the ufd
>           * fault addresses back.
>           */
> -        msg_region->userspace_addr = (uintptr_t)(mmap_addr +
> -                                                 dev_region->mmap_offset);
> +        msg_region->userspace_addr = dev_region->mmap_addr +
> +                                     dev_region->mmap_offset;
>  
>          /* Send the message back to qemu with the addresses filled in. */
>          vmsg->fd_num = 0;
> @@ -969,8 +969,8 @@ vu_set_mem_table_exec_postcopy(VuDev *dev, VhostUserMsg 
> *vmsg)
>          /* Return the address to QEMU so that it can translate the ufd
>           * fault addresses back.
>           */
> -        msg_region->userspace_addr = (uintptr_t)(mmap_addr +
> -                                                 dev_region->mmap_offset);
> +        msg_region->userspace_addr = dev_region->mmap_addr +
> +                                     dev_region->mmap_offset;
>          close(vmsg->fds[i]);
>      }
>  
> -- 
> 2.43.0


Reply via email to