vhost: close remaining memory region FDs during backend cleanup

After changes done in commit f325e71c, closing old FD is delayed until
VHOST_USER_SET_VRING_ADDR. If VM is closed before this call, original FDs
remain during vhost_backend_cleanup. This resolves issue #162.

This patch closes second set of FDs during vhost backend cleanup.

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: Ieb9d123c987009ac451b6214bb74d2720d852781
Reviewed-on: https://review.gerrithub.io/361787
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Piotr Pelpliński <piotr.pelplinski@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
This commit is contained in:
Tomasz Zawadzki 2017-05-19 15:06:27 +02:00 committed by Daniel Verkamp
parent 66349fbf7b
commit 216901dbd7

View File

@ -109,7 +109,15 @@ free_mem_region(struct virtio_net *dev)
void
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;
}
free_mem_region(dev);
rte_free(dev->mem);
dev->mem = NULL;