MCPcopy Create free account
hub / github.com/F-Stack/f-stack / mrvl_dev_close

Function mrvl_dev_close

dpdk/drivers/net/mvpp2/mrvl_ethdev.c:1098–1163  ·  view source on GitHub ↗

* DPDK callback to close the device. * * @param dev * Pointer to Ethernet device structure. */

Source from the content-addressed store, hash-verified

1096 * Pointer to Ethernet device structure.
1097 */
1098static int
1099mrvl_dev_close(struct rte_eth_dev *dev)
1100{
1101 struct mrvl_priv *priv = dev->data->dev_private;
1102 size_t i;
1103
1104 if (rte_eal_process_type() != RTE_PROC_PRIMARY)
1105 return 0;
1106
1107 mrvl_flush_rx_queues(dev);
1108 mrvl_flush_tx_shadow_queues(dev);
1109 mrvl_flow_deinit(dev);
1110 mrvl_mtr_deinit(dev);
1111
1112 for (i = 0; i < priv->ppio_params.inqs_params.num_tcs; ++i) {
1113 struct pp2_ppio_tc_params *tc_params =
1114 &priv->ppio_params.inqs_params.tcs_params[i];
1115
1116 if (tc_params->inqs_params) {
1117 rte_free(tc_params->inqs_params);
1118 tc_params->inqs_params = NULL;
1119 }
1120 }
1121
1122 if (priv->cls_tbl) {
1123 pp2_cls_tbl_deinit(priv->cls_tbl);
1124 priv->cls_tbl = NULL;
1125 }
1126
1127 if (priv->qos_tbl) {
1128 pp2_cls_qos_tbl_deinit(priv->qos_tbl);
1129 priv->qos_tbl = NULL;
1130 }
1131
1132 mrvl_flush_bpool(dev);
1133 mrvl_tm_deinit(dev);
1134
1135 if (priv->ppio) {
1136 pp2_ppio_deinit(priv->ppio);
1137 priv->ppio = NULL;
1138 }
1139
1140 /* policer must be released after ppio deinitialization */
1141 if (priv->default_policer) {
1142 pp2_cls_plcr_deinit(priv->default_policer);
1143 priv->default_policer = NULL;
1144 }
1145
1146
1147 if (priv->bpool) {
1148 pp2_bpool_deinit(priv->bpool);
1149 used_bpools[priv->pp_id] &= ~(1 << priv->bpool_bit);
1150 priv->bpool = NULL;
1151 }
1152
1153 mrvl_dev_num--;
1154
1155 if (mrvl_dev_num == 0) {

Callers

nothing calls this directly

Calls 11

rte_eal_process_typeFunction · 0.85
mrvl_flush_rx_queuesFunction · 0.85
mrvl_flow_deinitFunction · 0.85
mrvl_mtr_deinitFunction · 0.85
rte_freeFunction · 0.85
mrvl_flush_bpoolFunction · 0.85
mrvl_tm_deinitFunction · 0.85
mrvl_deinit_hifsFunction · 0.85
mrvl_deinit_pp2Function · 0.85
rte_mvep_deinitFunction · 0.85

Tested by

no test coverage detected