vhost: check file descriptor before closing
authorHuawei Xie <huawei.xie@intel.com>
Fri, 6 Mar 2015 11:05:43 +0000 (19:05 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 9 Mar 2015 11:46:46 +0000 (12:46 +0100)
This avoids closing -1 in our case.

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Tetsuya Mukawa <mukawa@igel.co.jp>
lib/librte_vhost/virtio-net.c

index 6917fcf..4672e67 100644 (file)
@@ -185,13 +185,13 @@ cleanup_device(struct virtio_net *dev)
        }
 
        /* Close any event notifiers opened by device. */
-       if (dev->virtqueue[VIRTIO_RXQ]->callfd)
+       if ((int)dev->virtqueue[VIRTIO_RXQ]->callfd >= 0)
                close((int)dev->virtqueue[VIRTIO_RXQ]->callfd);
-       if (dev->virtqueue[VIRTIO_RXQ]->kickfd)
+       if ((int)dev->virtqueue[VIRTIO_RXQ]->kickfd >= 0)
                close((int)dev->virtqueue[VIRTIO_RXQ]->kickfd);
-       if (dev->virtqueue[VIRTIO_TXQ]->callfd)
+       if ((int)dev->virtqueue[VIRTIO_TXQ]->callfd >= 0)
                close((int)dev->virtqueue[VIRTIO_TXQ]->callfd);
-       if (dev->virtqueue[VIRTIO_TXQ]->kickfd)
+       if ((int)dev->virtqueue[VIRTIO_TXQ]->kickfd >= 0)
                close((int)dev->virtqueue[VIRTIO_TXQ]->kickfd);
 }