diff options
author | Ionut-robert Aron <ionut-robert.aron@nxp.com> | 2020-09-25 17:44:21 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-09-26 03:10:27 +0300 |
commit | 5e29c16f3a327fb0f4e887a73588ae12e5e8b069 (patch) | |
tree | 8a4cf47435025b1071554000f94e91b44d6bafb5 /drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | |
parent | 4c33a5bd063f9fdbced5fd1ceb7814e5f64f6a7b (diff) | |
download | linux-5e29c16f3a327fb0f4e887a73588ae12e5e8b069.tar.xz |
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 <ionut-robert.aron@nxp.com>
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c')
-rw-r--r-- | drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c index 48679940c2c9..fe4caf7aad7c 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c @@ -3454,6 +3454,12 @@ static int dpaa2_eth_config_hash_key(struct dpaa2_eth_priv *priv, dma_addr_t key dev_err(dev, "dpni_set_rx_hash_dist failed\n"); break; } + + /* If the flow steering / hashing key is shared between all + * traffic classes, install it just once + */ + if (priv->dpni_attrs.options & DPNI_OPT_SHARED_FS) + break; } return err; @@ -3480,6 +3486,12 @@ static int dpaa2_eth_config_cls_key(struct dpaa2_eth_priv *priv, dma_addr_t key) dev_err(dev, "dpni_set_rx_fs_dist failed\n"); break; } + + /* If the flow steering / hashing key is shared between all + * traffic classes, install it just once + */ + if (priv->dpni_attrs.options & DPNI_OPT_SHARED_FS) + break; } return err; |