if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
__atomic_fetch_sub(&hw->secondary_cnt, 1, __ATOMIC_RELAXED);
+ hns3_mp_uninit();
return 0;
}
hns3_uninit_pf(eth_dev);
hns3_free_all_queues(eth_dev);
rte_free(hw->reset.wait_data);
- hns3_mp_uninit_primary();
+ hns3_mp_uninit();
hns3_warn(hw, "Close port %u finished", hw->data->port_id);
return ret;
rte_free(hw->reset.wait_data);
err_init_reset:
- hns3_mp_uninit_primary();
+ hns3_mp_uninit();
err_mp_init_primary:
err_mp_init_secondary:
if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
__atomic_fetch_sub(&hw->secondary_cnt, 1, __ATOMIC_RELAXED);
+ hns3_mp_uninit();
return 0;
}
if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
__atomic_fetch_sub(&hw->secondary_cnt, 1, __ATOMIC_RELAXED);
+ hns3_mp_uninit();
return 0;
}
hns3vf_uninit_vf(eth_dev);
hns3_free_all_queues(eth_dev);
rte_free(hw->reset.wait_data);
- hns3_mp_uninit_primary();
+ hns3_mp_uninit();
hns3_warn(hw, "Close port %u finished", hw->data->port_id);
return ret;
rte_free(hw->reset.wait_data);
err_init_reset:
- hns3_mp_uninit_primary();
+ hns3_mp_uninit();
err_mp_init_primary:
err_mp_init_secondary:
if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
__atomic_fetch_sub(&hw->secondary_cnt, 1, __ATOMIC_RELAXED);
+ hns3_mp_uninit();
return 0;
}
return 0;
}
-/*
- * Un-initialize by primary process.
- */
-void hns3_mp_uninit_primary(void)
+void hns3_mp_uninit(void)
{
process_data.eth_dev_cnt--;
void hns3_mp_req_stop_tx(struct rte_eth_dev *dev);
int hns3_mp_init_primary(void);
-void hns3_mp_uninit_primary(void);
+void hns3_mp_uninit(void);
int hns3_mp_init_secondary(void);
#endif /* _HNS3_MP_H_ */