| 12814 | } |
| 12815 | |
| 12816 | void |
| 12817 | mlx5_flow_meter_uninit(struct rte_eth_dev *dev) |
| 12818 | { |
| 12819 | struct mlx5_priv *priv = dev->data->dev_private; |
| 12820 | |
| 12821 | if (priv->mtr_policy_arr) { |
| 12822 | mlx5_free(priv->mtr_policy_arr); |
| 12823 | priv->mtr_policy_arr = NULL; |
| 12824 | } |
| 12825 | if (priv->mtr_profile_arr) { |
| 12826 | mlx5_free(priv->mtr_profile_arr); |
| 12827 | priv->mtr_profile_arr = NULL; |
| 12828 | } |
| 12829 | if (priv->hws_mpool) { |
| 12830 | mlx5_aso_mtr_queue_uninit(priv->sh, priv->hws_mpool, NULL); |
| 12831 | mlx5_ipool_destroy(priv->hws_mpool->idx_pool); |
| 12832 | mlx5_free(priv->hws_mpool); |
| 12833 | priv->hws_mpool = NULL; |
| 12834 | } |
| 12835 | if (priv->mtr_bulk.aso) { |
| 12836 | mlx5_free(priv->mtr_bulk.aso); |
| 12837 | priv->mtr_bulk.aso = NULL; |
| 12838 | priv->mtr_bulk.size = 0; |
| 12839 | mlx5_aso_queue_uninit(priv->sh, ASO_OPC_MOD_POLICER); |
| 12840 | } |
| 12841 | if (priv->mtr_bulk.action) { |
| 12842 | mlx5dr_action_destroy(priv->mtr_bulk.action); |
| 12843 | priv->mtr_bulk.action = NULL; |
| 12844 | } |
| 12845 | if (priv->mtr_bulk.devx_obj) { |
| 12846 | claim_zero(mlx5_devx_cmd_destroy(priv->mtr_bulk.devx_obj)); |
| 12847 | priv->mtr_bulk.devx_obj = NULL; |
| 12848 | } |
| 12849 | } |
| 12850 | |
| 12851 | int |
| 12852 | mlx5_flow_meter_init(struct rte_eth_dev *dev, |
no test coverage detected