diff --git a/lib/vhost/rte_vhost/vhost_user.c b/lib/vhost/rte_vhost/vhost_user.c index d530b1386..e73bab8a5 100644 --- a/lib/vhost/rte_vhost/vhost_user.c +++ b/lib/vhost/rte_vhost/vhost_user.c @@ -120,13 +120,13 @@ vhost_backend_cleanup(struct virtio_net *dev) { uint32_t i; - if (dev->mem) { - if (dev->has_new_mem_table) { - for (i = 0; i < dev->mem->nregions; i++) { - close(dev->mem_table_fds[i]); - } - dev->has_new_mem_table = 0; + if (dev->has_new_mem_table) { + for (i = 0; i < dev->mem_table.nregions; i++) { + close(dev->mem_table_fds[i]); } + dev->has_new_mem_table = 0; + } + if (dev->mem) { free_mem_region(dev); rte_free(dev->mem); dev->mem = NULL;