[dpdk-dev,v2,2/3] net/ixgbe: fix fdir mask not be reset
Checks
Commit Message
When the last fdir flow be destroyed, the flag "mask_added"
should be reset, so the remain mask info will not take effect
when a new flow be added.
Fixes: a14de8b498d1 ("net/ixgbe: destroy consistent filter")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
---
drivers/net/ixgbe/ixgbe_flow.c | 4 ++++
1 file changed, 4 insertions(+)
Comments
Hi,
> -----Original Message-----
> From: Zhang, Qi Z
> Sent: Thursday, June 1, 2017 3:46 AM
> To: Lu, Wenzhuo; Zhang, Helin
> Cc: dev@dpdk.org; Zhang, Qi Z; stable@dpdk.org
> Subject: [PATCH v2 2/3] net/ixgbe: fix fdir mask not be reset
>
> When the last fdir flow be destroyed, the flag "mask_added"
> should be reset, so the remain mask info will not take effect when a new
> flow be added.
>
> Fixes: a14de8b498d1 ("net/ixgbe: destroy consistent filter")
> Cc: stable@dpdk.org
>
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
@@ -2641,6 +2641,8 @@ ixgbe_flow_destroy(struct rte_eth_dev *dev,
struct ixgbe_eth_l2_tunnel_conf_ele *l2_tn_filter_ptr;
struct ixgbe_fdir_rule_ele *fdir_rule_ptr;
struct ixgbe_flow_mem *ixgbe_flow_mem_ptr;
+ struct ixgbe_hw_fdir_info *fdir_info =
+ IXGBE_DEV_PRIVATE_TO_FDIR_INFO(dev->data->dev_private);
switch (filter_type) {
case RTE_ETH_FILTER_NTUPLE:
@@ -2693,6 +2695,8 @@ ixgbe_flow_destroy(struct rte_eth_dev *dev,
TAILQ_REMOVE(&filter_fdir_list,
fdir_rule_ptr, entries);
rte_free(fdir_rule_ptr);
+ if (TAILQ_EMPTY(&filter_fdir_list))
+ fdir_info->mask_added = false;
}
break;
case RTE_ETH_FILTER_L2_TUNNEL: