summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
diff options
context:
space:
mode:
authorRaju Rangoju2019-05-23 15:51:21 +0200
committerDavid S. Miller2019-05-23 18:36:14 +0200
commitdcf10ec772ade4e9ba76f31c07dc1927b58eb4b4 (patch)
treebda089b1c08bef8dd0f0223eec72b1eb24644c99 /drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
parentMerge branch 'net-ll_temac-Fix-and-enable-multicast-support' (diff)
downloadkernel-qcow2-linux-dcf10ec772ade4e9ba76f31c07dc1927b58eb4b4.tar.gz
kernel-qcow2-linux-dcf10ec772ade4e9ba76f31c07dc1927b58eb4b4.tar.xz
kernel-qcow2-linux-dcf10ec772ade4e9ba76f31c07dc1927b58eb4b4.zip
cxgb4: use firmware API for validating filter spec
Adds support for validating hardware filter spec configured in firmware before offloading exact match flows. Use the new fw api FW_PARAM_DEV_FILTER_MODE_MASK to read the filter mode and mask from firmware. If the api isn't supported, then fall-back to older way of reading just the mode from indirect register. Signed-off-by: Raju Rangoju <rajur@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c')
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
index 0f0b3f4a039d..6232236d7abc 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
@@ -248,8 +248,9 @@ static int validate_filter(struct net_device *dev,
u32 fconf, iconf;
/* Check for unconfigured fields being used. */
- fconf = adapter->params.tp.vlan_pri_map;
iconf = adapter->params.tp.ingress_config;
+ fconf = fs->hash ? adapter->params.tp.filter_mask :
+ adapter->params.tp.vlan_pri_map;
if (unsupported(fconf, FCOE_F, fs->val.fcoe, fs->mask.fcoe) ||
unsupported(fconf, PORT_F, fs->val.iport, fs->mask.iport) ||