]> git.droids-corp.org - dpdk.git/blobdiff - drivers/net/netvsc/hn_vf.c
net/netvsc: free all queues on close
[dpdk.git] / drivers / net / netvsc / hn_vf.c
index 883272ff498c0a8e3ceeed097b5a81e0349b3082..b980bb8a4d8a1d48a663d3b558160cbf34a99132 100644 (file)
@@ -362,7 +362,16 @@ void hn_vf_reset(struct rte_eth_dev *dev)
 
 void hn_vf_close(struct rte_eth_dev *dev)
 {
-       VF_ETHDEV_FUNC(dev, rte_eth_dev_close);
+       struct hn_data *hv = dev->data->dev_private;
+       uint16_t vf_port;
+
+       rte_spinlock_lock(&hv->vf_lock);
+       vf_port = hv->vf_port;
+       if (vf_port != HN_INVALID_PORT)
+               rte_eth_dev_close(vf_port);
+
+       hv->vf_port = HN_INVALID_PORT;
+       rte_spinlock_unlock(&hv->vf_lock);
 }
 
 void hn_vf_stats_reset(struct rte_eth_dev *dev)