src/dpdk/drivers/net/mvpp2/mrvl_mtr.c
void
mrvl_mtr_deinit(struct rte_eth_dev *dev)
{
	struct mrvl_priv *priv = dev->data->dev_private;
	struct mrvl_mtr_profile *profile, *tmp_profile;
	struct mrvl_mtr *mtr, *tmp_mtr;

	for (mtr = LIST_FIRST(&priv->mtrs);
	     mtr && (tmp_mtr = LIST_NEXT(mtr, next), 1);
	     mtr = tmp_mtr)
		mrvl_destroy(dev, mtr->mtr_id, NULL);

	for (profile = LIST_FIRST(&priv->profiles);
	     profile && (tmp_profile = LIST_NEXT(profile, next), 1);
	     profile = tmp_profile)
		mrvl_meter_profile_delete(dev, profile->profile_id, NULL);
}
/**
 * Cleanup metering resources.
 *
 * @param dev Pointer to the device.
 */
Cleanup metering resources.
@param dev Pointer to the device.
Cleanup metering resources . @param dev Pointer to the device .
void
mrvl_mtr_deinit(struct rte_eth_dev *dev)
{
	struct mrvl_priv *priv = dev->data->dev_private;
	struct mrvl_mtr_profile *profile, *tmp_profile;
	struct mrvl_mtr *mtr, *tmp_mtr;
	for (mtr = LIST_FIRST(&priv->mtrs);
	     mtr && (tmp_mtr = LIST_NEXT(mtr, next), 1);
	     mtr = tmp_mtr)
		mrvl_destroy(dev, mtr->mtr_id, NULL);
	for (profile = LIST_FIRST(&priv->profiles);
	     profile && (tmp_profile = LIST_NEXT(profile, next), 1);
	     profile = tmp_profile)
		mrvl_meter_profile_delete(dev, profile->profile_id, NULL);
}
void mrvl_mtr_deinit ( struct rte_eth_dev * dev ) { struct mrvl_priv * priv = dev -> data -> dev_private ; struct mrvl_mtr_profile * profile , * tmp_profile ; struct mrvl_mtr * mtr , * tmp_mtr ; for ( mtr = LIST_FIRST ( & priv -> mtrs ) ; mtr && ( tmp_mtr = LIST_NEXT ( mtr , next ) , 1 ) ; mtr = tmp_mtr ) mrvl_destroy ( dev , mtr -> mtr_id , NULL ) ; for ( profile = LIST_FIRST ( & priv -> profiles ) ; profile && ( tmp_profile = LIST_NEXT ( profile , next ) , 1 ) ; profile = tmp_profile ) mrvl_meter_profile_delete ( dev , profile -> profile_id , NULL ) ; }
Cleanup metering resources.
Cleanup metering resources .