net: mvpp2: cls: Make the flow definitions const
authorMaxime Chevallier <maxime.chevallier@bootlin.com>
Wed, 27 Mar 2019 08:44:10 +0000 (09:44 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 27 Mar 2019 18:10:57 +0000 (11:10 -0700)
The cls_flow table represent the overall configuration of the
classifier, used to match the different traffic classes in the Parsing
and Classification engines.

This configuration is static, and applies to all PPv2 instances, we must
therefore keep it const so that no modifications of this table are
performed at runtime.

Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c
drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.h
drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c

index 853254846f304b580151be310cd675cf089c32fc..bfb6ed5560c3f4c15b5a33d31b162a7001748807 100644 (file)
@@ -22,7 +22,7 @@
        }                                                       \
 }
 
-static struct mvpp2_cls_flow cls_flows[MVPP2_N_PRS_FLOWS] = {
+static const struct mvpp2_cls_flow cls_flows[MVPP2_N_PRS_FLOWS] = {
        /* TCP over IPv4 flows, Not fragmented, no vlan tag */
        MVPP2_DEF_FLOW(TCP_V4_FLOW, MVPP2_FL_IP4_TCP_NF_UNTAG,
                       MVPP22_CLS_HEK_IP4_5T,
@@ -463,7 +463,7 @@ static void mvpp2_cls_flow_lu_type_set(struct mvpp2_cls_flow_entry *fe,
 
 /* Initialize the parser entry for the given flow */
 static void mvpp2_cls_flow_prs_init(struct mvpp2 *priv,
-                                   struct mvpp2_cls_flow *flow)
+                                   const struct mvpp2_cls_flow *flow)
 {
        mvpp2_prs_add_flow(priv, flow->flow_id, flow->prs_ri.ri,
                           flow->prs_ri.ri_mask);
@@ -471,7 +471,7 @@ static void mvpp2_cls_flow_prs_init(struct mvpp2 *priv,
 
 /* Initialize the Lookup Id table entry for the given flow */
 static void mvpp2_cls_flow_lkp_init(struct mvpp2 *priv,
-                                   struct mvpp2_cls_flow *flow)
+                                   const struct mvpp2_cls_flow *flow)
 {
        struct mvpp2_cls_lookup_entry le;
 
@@ -493,7 +493,8 @@ static void mvpp2_cls_flow_lkp_init(struct mvpp2 *priv,
 }
 
 /* Initialize the flow table entries for the given flow */
-static void mvpp2_cls_flow_init(struct mvpp2 *priv, struct mvpp2_cls_flow *flow)
+static void mvpp2_cls_flow_init(struct mvpp2 *priv,
+                               const struct mvpp2_cls_flow *flow)
 {
        struct mvpp2_cls_flow_entry fe;
        int i;
@@ -597,7 +598,7 @@ static int mvpp2_flow_set_hek_fields(struct mvpp2_cls_flow_entry *fe,
        return 0;
 }
 
-struct mvpp2_cls_flow *mvpp2_cls_flow_get(int flow)
+const struct mvpp2_cls_flow *mvpp2_cls_flow_get(int flow)
 {
        if (flow >= MVPP2_N_PRS_FLOWS)
                return NULL;
@@ -619,8 +620,8 @@ struct mvpp2_cls_flow *mvpp2_cls_flow_get(int flow)
 static int mvpp2_port_rss_hash_opts_set(struct mvpp2_port *port, int flow_type,
                                        u16 requested_opts)
 {
+       const struct mvpp2_cls_flow *flow;
        struct mvpp2_cls_flow_entry fe;
-       struct mvpp2_cls_flow *flow;
        int i, engine, flow_index;
        u16 hash_opts;
 
@@ -708,8 +709,8 @@ u16 mvpp2_flow_get_hek_fields(struct mvpp2_cls_flow_entry *fe)
  */
 static u16 mvpp2_port_rss_hash_opts_get(struct mvpp2_port *port, int flow_type)
 {
+       const struct mvpp2_cls_flow *flow;
        struct mvpp2_cls_flow_entry fe;
-       struct mvpp2_cls_flow *flow;
        int i, flow_index;
        u16 hash_opts = 0;
 
@@ -734,7 +735,7 @@ static u16 mvpp2_port_rss_hash_opts_get(struct mvpp2_port *port, int flow_type)
 
 static void mvpp2_cls_port_init_flows(struct mvpp2 *priv)
 {
-       struct mvpp2_cls_flow *flow;
+       const struct mvpp2_cls_flow *flow;
        int i;
 
        for (i = 0; i < MVPP2_N_PRS_FLOWS; i++) {
index 22d7d9a587b04ae6addd2fb43d7ec2445b261546..1d439eb469d583a950391ba130f23357411bbcd5 100644 (file)
@@ -223,7 +223,7 @@ int mvpp2_cls_flow_eng_get(struct mvpp2_cls_flow_entry *fe);
 
 u16 mvpp2_flow_get_hek_fields(struct mvpp2_cls_flow_entry *fe);
 
-struct mvpp2_cls_flow *mvpp2_cls_flow_get(int flow);
+const struct mvpp2_cls_flow *mvpp2_cls_flow_get(int flow);
 
 u32 mvpp2_cls_flow_hits(struct mvpp2 *priv, int index);
 
index 97e0ef130a61fb99fb306d3080056a292640fdda..03f889bf0fb6acf61d29d9f805881dbac5d0162a 100644 (file)
@@ -58,7 +58,7 @@ DEFINE_SHOW_ATTRIBUTE(mvpp2_dbgfs_flow_dec_hits);
 static int mvpp2_dbgfs_flow_type_show(struct seq_file *s, void *unused)
 {
        struct mvpp2_dbgfs_flow_entry *entry = s->private;
-       struct mvpp2_cls_flow *f;
+       const struct mvpp2_cls_flow *f;
        const char *flow_name;
 
        f = mvpp2_cls_flow_get(entry->flow);
@@ -115,8 +115,8 @@ static const struct file_operations mvpp2_dbgfs_flow_type_fops = {
 
 static int mvpp2_dbgfs_flow_id_show(struct seq_file *s, void *unused)
 {
-       struct mvpp2_dbgfs_flow_entry *entry = s->private;
-       struct mvpp2_cls_flow *f;
+       const struct mvpp2_dbgfs_flow_entry *entry = s->private;
+       const struct mvpp2_cls_flow *f;
 
        f = mvpp2_cls_flow_get(entry->flow);
        if (!f)
@@ -134,7 +134,7 @@ static int mvpp2_dbgfs_port_flow_hash_opt_show(struct seq_file *s, void *unused)
        struct mvpp2_dbgfs_port_flow_entry *entry = s->private;
        struct mvpp2_port *port = entry->port;
        struct mvpp2_cls_flow_entry fe;
-       struct mvpp2_cls_flow *f;
+       const struct mvpp2_cls_flow *f;
        int flow_index;
        u16 hash_opts;
 
@@ -181,7 +181,7 @@ static int mvpp2_dbgfs_port_flow_engine_show(struct seq_file *s, void *unused)
        struct mvpp2_dbgfs_port_flow_entry *entry = s->private;
        struct mvpp2_port *port = entry->port;
        struct mvpp2_cls_flow_entry fe;
-       struct mvpp2_cls_flow *f;
+       const struct mvpp2_cls_flow *f;
        int flow_index, engine;
 
        f = mvpp2_cls_flow_get(entry->dbg_fe->flow);