[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[qemu-xen stable-4.16] libvhost-user: fix VHOST_USER_REM_MEM_REG skipping mmap_addr



commit 3c6e5df1f6badec09cdbbff29b16668a92816b68
Author:     David Hildenbrand <david@xxxxxxxxxx>
AuthorDate: Mon Oct 11 22:10:47 2021 +0200
Commit:     Michael Roth <michael.roth@xxxxxxx>
CommitDate: Tue Dec 14 08:57:07 2021 -0600

    libvhost-user: fix VHOST_USER_REM_MEM_REG skipping mmap_addr
    
    We end up not copying the mmap_addr of all existing regions, resulting
    in a SEGFAULT once we actually try to map/access anything within our
    memory regions.
    
    Fixes: 875b9fd97b34 ("Support individual region unmap in libvhost-user")
    Cc: qemu-stable@xxxxxxxxxx
    Cc: Michael S. Tsirkin <mst@xxxxxxxxxx>
    Cc: Raphael Norwitz <raphael.norwitz@xxxxxxxxxxx>
    Cc: "Marc-André Lureau" <marcandre.lureau@xxxxxxxxxx>
    Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx>
    Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
    Cc: Coiby Xu <coiby.xu@xxxxxxxxx>
    Signed-off-by: David Hildenbrand <david@xxxxxxxxxx>
    Message-Id: <20211011201047.62587-1-david@xxxxxxxxxx>
    Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
    Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
    Reviewed-by: Raphael Norwitz <raphael.norwitz@xxxxxxxxxxx>
    Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx>
    (cherry picked from commit 6889eb2d431ae962e3e083b57bff47cd573cb1c4)
    Signed-off-by: Michael Roth <michael.roth@xxxxxxx>
---
 subprojects/libvhost-user/libvhost-user.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/subprojects/libvhost-user/libvhost-user.c 
b/subprojects/libvhost-user/libvhost-user.c
index bf09693255..787f4d2d4f 100644
--- a/subprojects/libvhost-user/libvhost-user.c
+++ b/subprojects/libvhost-user/libvhost-user.c
@@ -816,6 +816,7 @@ vu_rem_mem_reg(VuDev *dev, VhostUserMsg *vmsg) {
             shadow_regions[j].gpa = dev->regions[i].gpa;
             shadow_regions[j].size = dev->regions[i].size;
             shadow_regions[j].qva = dev->regions[i].qva;
+            shadow_regions[j].mmap_addr = dev->regions[i].mmap_addr;
             shadow_regions[j].mmap_offset = dev->regions[i].mmap_offset;
             j++;
         } else {
--
generated by git-patchbot for /home/xen/git/qemu-xen.git#stable-4.16



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.