Skip to content

Commit 5e29c16

Browse files
Ionut-robert Arondavem330
authored andcommitted
dpaa2-eth: install a single steering rule when SHARED_FS is enabled
When SHARED_FS is enabled on a DPNI object the flow steering tables are shared between all the traffic classes. Modify the driver so that we only add a new flow steering entry on the TC#0 when this new option is enabled. Signed-off-by: Ionut-robert Aron <[email protected]> Signed-off-by: Ioana Ciornei <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 4c33a5b commit 5e29c16

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3454,6 +3454,12 @@ static int dpaa2_eth_config_hash_key(struct dpaa2_eth_priv *priv, dma_addr_t key
34543454
dev_err(dev, "dpni_set_rx_hash_dist failed\n");
34553455
break;
34563456
}
3457+
3458+
/* If the flow steering / hashing key is shared between all
3459+
* traffic classes, install it just once
3460+
*/
3461+
if (priv->dpni_attrs.options & DPNI_OPT_SHARED_FS)
3462+
break;
34573463
}
34583464

34593465
return err;
@@ -3480,6 +3486,12 @@ static int dpaa2_eth_config_cls_key(struct dpaa2_eth_priv *priv, dma_addr_t key)
34803486
dev_err(dev, "dpni_set_rx_fs_dist failed\n");
34813487
break;
34823488
}
3489+
3490+
/* If the flow steering / hashing key is shared between all
3491+
* traffic classes, install it just once
3492+
*/
3493+
if (priv->dpni_attrs.options & DPNI_OPT_SHARED_FS)
3494+
break;
34833495
}
34843496

34853497
return err;

drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -618,7 +618,7 @@ static int dpaa2_eth_do_cls_rule(struct net_device *net_dev,
618618
err = dpni_remove_fs_entry(priv->mc_io, 0,
619619
priv->mc_token, i,
620620
&rule_cfg);
621-
if (err)
621+
if (err || priv->dpni_attrs.options & DPNI_OPT_SHARED_FS)
622622
break;
623623
}
624624

drivers/net/ethernet/freescale/dpaa2/dpni.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ struct fsl_mc_io;
7575
* Disables the flow steering table.
7676
*/
7777
#define DPNI_OPT_NO_FS 0x000020
78+
/**
79+
* Flow steering table is shared between all traffic classes
80+
*/
81+
#define DPNI_OPT_SHARED_FS 0x001000
7882

7983
int dpni_open(struct fsl_mc_io *mc_io,
8084
u32 cmd_flags,

0 commit comments

Comments
 (0)