libvhost-user: handle removal of identical regions
authorRaphael Norwitz <raphael.norwitz@nutanix.com>
Mon, 17 Jan 2022 04:12:35 +0000 (04:12 +0000)
committerMichael S. Tsirkin <mst@redhat.com>
Fri, 4 Feb 2022 14:07:43 +0000 (09:07 -0500)
commit4fafedc9daaf7d7d5ad36d8925bdddd6da5ed8c2
treec37fbea6c057f80d36bed7ae244f5ef19a92a906
parentb906a23c33673f790a67dbd631a244387be77cb5
libvhost-user: handle removal of identical regions

Today if QEMU (or any other VMM) has sent multiple copies of the same
region to a libvhost-user based backend and then attempts to remove the
region, only one instance of the region will be removed, leaving stale
copies of the region in dev->regions[].

This change resolves this by having vu_rem_mem_reg() iterate through all
regions in dev->regions[] and delete all matching regions.

Suggested-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Message-Id: <20220117041050.19718-7-raphael.norwitz@nutanix.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
subprojects/libvhost-user/libvhost-user.c