From: John Hurley <john.hur...@netronome.com>

Recent changes to NFP mean that stats updates from fw to driver no longer
require a flow lookup and (because egdev offload has been removed) the
ingress netdev for a lookup is now always known.

Remove obsolete code in a flow lookup that matches on host context and
that allows for a netdev to be NULL.

Signed-off-by: John Hurley <john.hur...@netronome.com>
Reviewed-by: Jakub Kicinski <jakub.kicin...@netronome.com>
---
 drivers/net/ethernet/netronome/nfp/flower/main.h     |  3 +--
 drivers/net/ethernet/netronome/nfp/flower/metadata.c | 11 +++--------
 drivers/net/ethernet/netronome/nfp/flower/offload.c  |  6 ++----
 3 files changed, 6 insertions(+), 14 deletions(-)

diff --git a/drivers/net/ethernet/netronome/nfp/flower/main.h 
b/drivers/net/ethernet/netronome/nfp/flower/main.h
index 9d134aa871fc..b858bac47621 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/main.h
+++ b/drivers/net/ethernet/netronome/nfp/flower/main.h
@@ -20,7 +20,6 @@ struct nfp_fl_pre_lag;
 struct net_device;
 struct nfp_app;
 
-#define NFP_FL_STATS_CTX_DONT_CARE     cpu_to_be32(0xffffffff)
 #define NFP_FL_STATS_ELEM_RS           FIELD_SIZEOF(struct nfp_fl_stats_id, \
                                                     init_unalloc)
 #define NFP_FLOWER_MASK_ENTRY_RS       256
@@ -242,7 +241,7 @@ int nfp_modify_flow_metadata(struct nfp_app *app,
 
 struct nfp_fl_payload *
 nfp_flower_search_fl_table(struct nfp_app *app, unsigned long tc_flower_cookie,
-                          struct net_device *netdev, __be32 host_ctx);
+                          struct net_device *netdev);
 struct nfp_fl_payload *
 nfp_flower_remove_fl_table(struct nfp_app *app, unsigned long 
tc_flower_cookie);
 
diff --git a/drivers/net/ethernet/netronome/nfp/flower/metadata.c 
b/drivers/net/ethernet/netronome/nfp/flower/metadata.c
index 9b4711ce98f0..573a4400a26c 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/metadata.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/metadata.c
@@ -21,7 +21,6 @@ struct nfp_mask_id_table {
 struct nfp_fl_flow_table_cmp_arg {
        struct net_device *netdev;
        unsigned long cookie;
-       __be32 host_ctx;
 };
 
 static int nfp_release_stats_entry(struct nfp_app *app, u32 stats_context_id)
@@ -76,14 +75,13 @@ static int nfp_get_stats_entry(struct nfp_app *app, u32 
*stats_context_id)
 /* Must be called with either RTNL or rcu_read_lock */
 struct nfp_fl_payload *
 nfp_flower_search_fl_table(struct nfp_app *app, unsigned long tc_flower_cookie,
-                          struct net_device *netdev, __be32 host_ctx)
+                          struct net_device *netdev)
 {
        struct nfp_fl_flow_table_cmp_arg flower_cmp_arg;
        struct nfp_flower_priv *priv = app->priv;
 
        flower_cmp_arg.netdev = netdev;
        flower_cmp_arg.cookie = tc_flower_cookie;
-       flower_cmp_arg.host_ctx = host_ctx;
 
        return rhashtable_lookup_fast(&priv->flow_table, &flower_cmp_arg,
                                      nfp_flower_table_params);
@@ -307,8 +305,7 @@ int nfp_compile_flow_metadata(struct nfp_app *app,
        priv->stats[stats_cxt].bytes = 0;
        priv->stats[stats_cxt].used = jiffies;
 
-       check_entry = nfp_flower_search_fl_table(app, flow->cookie, netdev,
-                                                NFP_FL_STATS_CTX_DONT_CARE);
+       check_entry = nfp_flower_search_fl_table(app, flow->cookie, netdev);
        if (check_entry) {
                if (nfp_release_stats_entry(app, stats_cxt))
                        return -EINVAL;
@@ -353,9 +350,7 @@ static int nfp_fl_obj_cmpfn(struct rhashtable_compare_arg 
*arg,
        const struct nfp_fl_flow_table_cmp_arg *cmp_arg = arg->key;
        const struct nfp_fl_payload *flow_entry = obj;
 
-       if ((!cmp_arg->netdev || flow_entry->ingress_dev == cmp_arg->netdev) &&
-           (cmp_arg->host_ctx == NFP_FL_STATS_CTX_DONT_CARE ||
-            flow_entry->meta.host_ctx_id == cmp_arg->host_ctx))
+       if (flow_entry->ingress_dev == cmp_arg->netdev)
                return flow_entry->tc_flower_cookie != cmp_arg->cookie;
 
        return 1;
diff --git a/drivers/net/ethernet/netronome/nfp/flower/offload.c 
b/drivers/net/ethernet/netronome/nfp/flower/offload.c
index 0e2dfbb3ef86..545d94168874 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/offload.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/offload.c
@@ -512,8 +512,7 @@ nfp_flower_del_offload(struct nfp_app *app, struct 
net_device *netdev,
        if (nfp_netdev_is_nfp_repr(netdev))
                port = nfp_port_from_netdev(netdev);
 
-       nfp_flow = nfp_flower_search_fl_table(app, flow->cookie, netdev,
-                                             NFP_FL_STATS_CTX_DONT_CARE);
+       nfp_flow = nfp_flower_search_fl_table(app, flow->cookie, netdev);
        if (!nfp_flow)
                return -ENOENT;
 
@@ -561,8 +560,7 @@ nfp_flower_get_stats(struct nfp_app *app, struct net_device 
*netdev,
        struct nfp_fl_payload *nfp_flow;
        u32 ctx_id;
 
-       nfp_flow = nfp_flower_search_fl_table(app, flow->cookie, netdev,
-                                             NFP_FL_STATS_CTX_DONT_CARE);
+       nfp_flow = nfp_flower_search_fl_table(app, flow->cookie, netdev);
        if (!nfp_flow)
                return -EINVAL;
 
-- 
2.17.1

Reply via email to