nvmf/vfio-user: ignore unmapped DMA regions
libvfio-user DMA APIs report all regions notified by the client, including those that don't have a corresponding shared mapping. There are several of these for a typical VM, so just ignore this case. Signed-off-by: John Levon <john.levon@nutanix.com> Signed-off-by: Changpeng Liu <changpeng.liu@intel.com> Change-Id: I37b06f4bc6d1818a03c8742616ed142f575d3f0e Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7532 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
517164a5fd
commit
ed2942461d
@ -1078,7 +1078,15 @@ memory_region_add_cb(vfu_ctx_t *vfu_ctx, vfu_dma_info_t *info)
|
||||
struct nvmf_vfio_user_qpair *qpair;
|
||||
int i, ret;
|
||||
|
||||
if (!info->vaddr || ((uintptr_t)info->mapping.iov_base & MASK_2MB) ||
|
||||
/*
|
||||
* We're not interested in any DMA regions that aren't mappable (we don't
|
||||
* support clients that don't share their memory).
|
||||
*/
|
||||
if (!info->vaddr) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (((uintptr_t)info->mapping.iov_base & MASK_2MB) ||
|
||||
(info->mapping.iov_len & MASK_2MB)) {
|
||||
SPDK_DEBUGLOG(nvmf_vfio, "Invalid memory region vaddr %p, IOVA %#lx-%#lx\n", info->vaddr,
|
||||
(uintptr_t)info->mapping.iov_base,
|
||||
@ -1154,7 +1162,11 @@ memory_region_remove_cb(vfu_ctx_t *vfu_ctx, vfu_dma_info_t *info)
|
||||
void *map_start, *map_end;
|
||||
int i;
|
||||
|
||||
if (!info->vaddr || ((uintptr_t)info->mapping.iov_base & MASK_2MB) ||
|
||||
if (!info->vaddr) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (((uintptr_t)info->mapping.iov_base & MASK_2MB) ||
|
||||
(info->mapping.iov_len & MASK_2MB)) {
|
||||
SPDK_DEBUGLOG(nvmf_vfio, "Invalid memory region vaddr %p, IOVA %#lx-%#lx\n", info->vaddr,
|
||||
(uintptr_t)info->mapping.iov_base,
|
||||
|
Loading…
Reference in New Issue
Block a user