aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/igc/igc_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/intel/igc/igc_main.c')
-rw-r--r--drivers/net/ethernet/intel/igc/igc_main.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index 9999d8fc640b..11385c380947 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -3385,14 +3385,8 @@ static int igc_enable_nfc_rule(struct igc_adapter *adapter,
{
int err;
- /* Check for user data first: When user data is set, the only option is
- * to use a flex filter. When more options are set (ethertype, vlan tci,
- * ...) construct a flex filter matching all of that.
- */
- if (rule->filter.match_flags & IGC_FILTER_FLAG_USER_DATA) {
- err = igc_add_flex_filter(adapter, rule);
- if (err)
- return err;
+ if (rule->flex) {
+ return igc_add_flex_filter(adapter, rule);
}
if (rule->filter.match_flags & IGC_FILTER_FLAG_ETHER_TYPE) {
@@ -3431,8 +3425,10 @@ static int igc_enable_nfc_rule(struct igc_adapter *adapter,
static void igc_disable_nfc_rule(struct igc_adapter *adapter,
const struct igc_nfc_rule *rule)
{
- if (rule->filter.match_flags & IGC_FILTER_FLAG_USER_DATA)
+ if (rule->flex) {
igc_del_flex_filter(adapter, rule->filter.flex_index);
+ return;
+ }
if (rule->filter.match_flags & IGC_FILTER_FLAG_ETHER_TYPE)
igc_del_etype_filter(adapter, rule->filter.etype);