|
@@ -2047,7 +2047,8 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,
|
|
|
/* Due to lack of space, no more new filters can be programmed */
|
|
|
if (th->syn && (pf->auto_disable_flags & I40E_FLAG_FD_ATR_ENABLED))
|
|
|
return;
|
|
|
- if (pf->flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE) {
|
|
|
+ if ((pf->flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE) &&
|
|
|
+ (!(pf->auto_disable_flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE))) {
|
|
|
/* HW ATR eviction will take care of removing filters on FIN
|
|
|
* and RST packets.
|
|
|
*/
|
|
@@ -2109,7 +2110,8 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,
|
|
|
I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT) &
|
|
|
I40E_TXD_FLTR_QW1_CNTINDEX_MASK;
|
|
|
|
|
|
- if (pf->flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE)
|
|
|
+ if ((pf->flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE) &&
|
|
|
+ (!(pf->auto_disable_flags & I40E_FLAG_HW_ATR_EVICT_CAPABLE)))
|
|
|
dtype_cmd |= I40E_TXD_FLTR_QW1_ATR_MASK;
|
|
|
|
|
|
fdir_desc->qindex_flex_ptype_vsi = cpu_to_le32(flex_ptype);
|