src/dpdk/drivers/net/e1000/igb_ethdev.c
static int igb_flex_filter_uninit(struct rte_eth_dev *eth_dev)
{
	struct e1000_filter_info *filter_info =
		E1000_DEV_PRIVATE_TO_FILTER_INFO(eth_dev->data->dev_private);
	struct e1000_flex_filter *p_flex;

	while ((p_flex = TAILQ_FIRST(&filter_info->flex_list))) {
		TAILQ_REMOVE(&filter_info->flex_list, p_flex, entries);
		rte_free(p_flex);
	}
	filter_info->flex_mask = 0;

	return 0;
}
/* Remove all flex filters of the device */
Remove all flex filters of the device
Remove all flex filters of the device
static int igb_flex_filter_uninit(struct rte_eth_dev *eth_dev)
{
	struct e1000_filter_info *filter_info =
		E1000_DEV_PRIVATE_TO_FILTER_INFO(eth_dev->data->dev_private);
	struct e1000_flex_filter *p_flex;
	while ((p_flex = TAILQ_FIRST(&filter_info->flex_list))) {
		TAILQ_REMOVE(&filter_info->flex_list, p_flex, entries);
		rte_free(p_flex);
	}
	filter_info->flex_mask = 0;
	return 0;
}
static int igb_flex_filter_uninit ( struct rte_eth_dev * eth_dev ) { struct e1000_filter_info * filter_info = E1000_DEV_PRIVATE_TO_FILTER_INFO ( eth_dev -> data -> dev_private ) ; struct e1000_flex_filter * p_flex ; while ( ( p_flex = TAILQ_FIRST ( & filter_info -> flex_list ) ) ) { TAILQ_REMOVE ( & filter_info -> flex_list , p_flex , entries ) ; rte_free ( p_flex ) ; } filter_info -> flex_mask = 0 ; return 0 ; }
Remove all flex filters of the device
Remove all flex filters of the device