e1000: support port hotplug
[dpdk.git] / drivers / net / e1000 / igb_pf.c
index 6a4d210..26c2960 100644 (file)
@@ -127,6 +127,28 @@ void igb_pf_host_init(struct rte_eth_dev *eth_dev)
        return;
 }
 
+void igb_pf_host_uninit(struct rte_eth_dev *dev)
+{
+       struct e1000_vf_info **vfinfo;
+       uint16_t vf_num;
+
+       PMD_INIT_FUNC_TRACE();
+
+       vfinfo = E1000_DEV_PRIVATE_TO_P_VFDATA(dev->data->dev_private);
+
+       RTE_ETH_DEV_SRIOV(dev).active = 0;
+       RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool = 0;
+       RTE_ETH_DEV_SRIOV(dev).def_vmdq_idx = 0;
+       RTE_ETH_DEV_SRIOV(dev).def_pool_q_idx = 0;
+
+       vf_num = dev_num_vf(dev);
+       if (vf_num == 0)
+               return;
+
+       rte_free(*vfinfo);
+       *vfinfo = NULL;
+}
+
 #define E1000_RAH_POOLSEL_SHIFT    (18)
 int igb_pf_host_configure(struct rte_eth_dev *eth_dev)
 {