* [PATCH net 0/2] net: stmmac: Filtering fixes @ 2020-01-10 15:23 ` Jose Abreu 0 siblings, 0 replies; 8+ messages in thread From: Jose Abreu @ 2020-01-10 15:23 UTC (permalink / raw) To: netdev Cc: Joao Pinto, Jose Abreu, Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu, David S. Miller, Maxime Coquelin, linux-stm32, linux-arm-kernel, linux-kernel Two single fixes for the L3 and L4 filtering in stmmac. 1) Updates the internal status of RSS when disabling it in order to keep internal driver status consistent. 2) Do not lets user add a filter if RSS is enabled because the filter will not work correctly as RSS bypasses this mechanism. --- Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com> Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: Jose Abreu <joabreu@synopsys.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: netdev@vger.kernel.org Cc: linux-stm32@st-md-mailman.stormreply.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org --- Jose Abreu (2): net: stmmac: selftests: Update status when disabling RSS net: stmmac: tc: Do not setup flower filtering if RSS is enabled .../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 20 ++++++++++++++------ drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 4 ++++ 2 files changed, 18 insertions(+), 6 deletions(-) -- 2.7.4 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH net 0/2] net: stmmac: Filtering fixes @ 2020-01-10 15:23 ` Jose Abreu 0 siblings, 0 replies; 8+ messages in thread From: Jose Abreu @ 2020-01-10 15:23 UTC (permalink / raw) To: netdev Cc: Jose Abreu, Joao Pinto, Alexandre Torgue, linux-kernel, linux-stm32, Maxime Coquelin, Giuseppe Cavallaro, David S. Miller, linux-arm-kernel Two single fixes for the L3 and L4 filtering in stmmac. 1) Updates the internal status of RSS when disabling it in order to keep internal driver status consistent. 2) Do not lets user add a filter if RSS is enabled because the filter will not work correctly as RSS bypasses this mechanism. --- Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com> Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: Jose Abreu <joabreu@synopsys.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: netdev@vger.kernel.org Cc: linux-stm32@st-md-mailman.stormreply.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org --- Jose Abreu (2): net: stmmac: selftests: Update status when disabling RSS net: stmmac: tc: Do not setup flower filtering if RSS is enabled .../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 20 ++++++++++++++------ drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 4 ++++ 2 files changed, 18 insertions(+), 6 deletions(-) -- 2.7.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH net 1/2] net: stmmac: selftests: Update status when disabling RSS 2020-01-10 15:23 ` Jose Abreu @ 2020-01-10 15:23 ` Jose Abreu -1 siblings, 0 replies; 8+ messages in thread From: Jose Abreu @ 2020-01-10 15:23 UTC (permalink / raw) To: netdev Cc: Joao Pinto, Jose Abreu, Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu, David S. Miller, Maxime Coquelin, linux-stm32, linux-arm-kernel, linux-kernel We are disabling RSS on HW but not updating the internal private status to the 'disabled' state. This is needed for next tc commit that will check if RSS is disabled before trying to apply filters. Fixes: 4647e021193d ("net: stmmac: selftests: Add selftest for L3/L4 Filters") Signed-off-by: Jose Abreu <Jose.Abreu@synopsys.com> --- Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com> Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: Jose Abreu <joabreu@synopsys.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: netdev@vger.kernel.org Cc: linux-stm32@st-md-mailman.stormreply.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org --- .../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c index 13227909287c..36a4c43a799a 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c @@ -1323,16 +1323,19 @@ static int __stmmac_test_l3filt(struct stmmac_priv *priv, u32 dst, u32 src, struct stmmac_packet_attrs attr = { }; struct flow_dissector *dissector; struct flow_cls_offload *cls; + int ret, old_enable = 0; struct flow_rule *rule; - int ret; if (!tc_can_offload(priv->dev)) return -EOPNOTSUPP; if (!priv->dma_cap.l3l4fnum) return -EOPNOTSUPP; - if (priv->rss.enable) + if (priv->rss.enable) { + old_enable = priv->rss.enable; + priv->rss.enable = false; stmmac_rss_configure(priv, priv->hw, NULL, priv->plat->rx_queues_to_use); + } dissector = kzalloc(sizeof(*dissector), GFP_KERNEL); if (!dissector) { @@ -1399,7 +1402,8 @@ static int __stmmac_test_l3filt(struct stmmac_priv *priv, u32 dst, u32 src, cleanup_dissector: kfree(dissector); cleanup_rss: - if (priv->rss.enable) { + if (old_enable) { + priv->rss.enable = old_enable; stmmac_rss_configure(priv, priv->hw, &priv->rss, priv->plat->rx_queues_to_use); } @@ -1444,16 +1448,19 @@ static int __stmmac_test_l4filt(struct stmmac_priv *priv, u32 dst, u32 src, struct stmmac_packet_attrs attr = { }; struct flow_dissector *dissector; struct flow_cls_offload *cls; + int ret, old_enable = 0; struct flow_rule *rule; - int ret; if (!tc_can_offload(priv->dev)) return -EOPNOTSUPP; if (!priv->dma_cap.l3l4fnum) return -EOPNOTSUPP; - if (priv->rss.enable) + if (priv->rss.enable) { + old_enable = priv->rss.enable; + priv->rss.enable = false; stmmac_rss_configure(priv, priv->hw, NULL, priv->plat->rx_queues_to_use); + } dissector = kzalloc(sizeof(*dissector), GFP_KERNEL); if (!dissector) { @@ -1525,7 +1532,8 @@ static int __stmmac_test_l4filt(struct stmmac_priv *priv, u32 dst, u32 src, cleanup_dissector: kfree(dissector); cleanup_rss: - if (priv->rss.enable) { + if (old_enable) { + priv->rss.enable = old_enable; stmmac_rss_configure(priv, priv->hw, &priv->rss, priv->plat->rx_queues_to_use); } -- 2.7.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH net 1/2] net: stmmac: selftests: Update status when disabling RSS @ 2020-01-10 15:23 ` Jose Abreu 0 siblings, 0 replies; 8+ messages in thread From: Jose Abreu @ 2020-01-10 15:23 UTC (permalink / raw) To: netdev Cc: Jose Abreu, Joao Pinto, Alexandre Torgue, linux-kernel, linux-stm32, Maxime Coquelin, Giuseppe Cavallaro, David S. Miller, linux-arm-kernel We are disabling RSS on HW but not updating the internal private status to the 'disabled' state. This is needed for next tc commit that will check if RSS is disabled before trying to apply filters. Fixes: 4647e021193d ("net: stmmac: selftests: Add selftest for L3/L4 Filters") Signed-off-by: Jose Abreu <Jose.Abreu@synopsys.com> --- Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com> Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: Jose Abreu <joabreu@synopsys.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: netdev@vger.kernel.org Cc: linux-stm32@st-md-mailman.stormreply.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org --- .../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c index 13227909287c..36a4c43a799a 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c @@ -1323,16 +1323,19 @@ static int __stmmac_test_l3filt(struct stmmac_priv *priv, u32 dst, u32 src, struct stmmac_packet_attrs attr = { }; struct flow_dissector *dissector; struct flow_cls_offload *cls; + int ret, old_enable = 0; struct flow_rule *rule; - int ret; if (!tc_can_offload(priv->dev)) return -EOPNOTSUPP; if (!priv->dma_cap.l3l4fnum) return -EOPNOTSUPP; - if (priv->rss.enable) + if (priv->rss.enable) { + old_enable = priv->rss.enable; + priv->rss.enable = false; stmmac_rss_configure(priv, priv->hw, NULL, priv->plat->rx_queues_to_use); + } dissector = kzalloc(sizeof(*dissector), GFP_KERNEL); if (!dissector) { @@ -1399,7 +1402,8 @@ static int __stmmac_test_l3filt(struct stmmac_priv *priv, u32 dst, u32 src, cleanup_dissector: kfree(dissector); cleanup_rss: - if (priv->rss.enable) { + if (old_enable) { + priv->rss.enable = old_enable; stmmac_rss_configure(priv, priv->hw, &priv->rss, priv->plat->rx_queues_to_use); } @@ -1444,16 +1448,19 @@ static int __stmmac_test_l4filt(struct stmmac_priv *priv, u32 dst, u32 src, struct stmmac_packet_attrs attr = { }; struct flow_dissector *dissector; struct flow_cls_offload *cls; + int ret, old_enable = 0; struct flow_rule *rule; - int ret; if (!tc_can_offload(priv->dev)) return -EOPNOTSUPP; if (!priv->dma_cap.l3l4fnum) return -EOPNOTSUPP; - if (priv->rss.enable) + if (priv->rss.enable) { + old_enable = priv->rss.enable; + priv->rss.enable = false; stmmac_rss_configure(priv, priv->hw, NULL, priv->plat->rx_queues_to_use); + } dissector = kzalloc(sizeof(*dissector), GFP_KERNEL); if (!dissector) { @@ -1525,7 +1532,8 @@ static int __stmmac_test_l4filt(struct stmmac_priv *priv, u32 dst, u32 src, cleanup_dissector: kfree(dissector); cleanup_rss: - if (priv->rss.enable) { + if (old_enable) { + priv->rss.enable = old_enable; stmmac_rss_configure(priv, priv->hw, &priv->rss, priv->plat->rx_queues_to_use); } -- 2.7.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH net 2/2] net: stmmac: tc: Do not setup flower filtering if RSS is enabled 2020-01-10 15:23 ` Jose Abreu @ 2020-01-10 15:23 ` Jose Abreu -1 siblings, 0 replies; 8+ messages in thread From: Jose Abreu @ 2020-01-10 15:23 UTC (permalink / raw) To: netdev Cc: Joao Pinto, Jose Abreu, Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu, David S. Miller, Maxime Coquelin, linux-stm32, linux-arm-kernel, linux-kernel RSS, when enabled, will bypass the L3 and L4 filtering causing it not to work. Add a check before trying to setup the filters. Fixes: 425eabddaf0f ("net: stmmac: Implement L3/L4 Filters using TC Flower") Signed-off-by: Jose Abreu <Jose.Abreu@synopsys.com> --- Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com> Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: Jose Abreu <joabreu@synopsys.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: netdev@vger.kernel.org Cc: linux-stm32@st-md-mailman.stormreply.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org --- drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c index 7d972e0fd2b0..9ffae12a2122 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c @@ -577,6 +577,10 @@ static int tc_setup_cls(struct stmmac_priv *priv, { int ret = 0; + /* When RSS is enabled, the filtering will be bypassed */ + if (priv->rss.enable) + return -EBUSY; + switch (cls->command) { case FLOW_CLS_REPLACE: ret = tc_add_flow(priv, cls); -- 2.7.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH net 2/2] net: stmmac: tc: Do not setup flower filtering if RSS is enabled @ 2020-01-10 15:23 ` Jose Abreu 0 siblings, 0 replies; 8+ messages in thread From: Jose Abreu @ 2020-01-10 15:23 UTC (permalink / raw) To: netdev Cc: Jose Abreu, Joao Pinto, Alexandre Torgue, linux-kernel, linux-stm32, Maxime Coquelin, Giuseppe Cavallaro, David S. Miller, linux-arm-kernel RSS, when enabled, will bypass the L3 and L4 filtering causing it not to work. Add a check before trying to setup the filters. Fixes: 425eabddaf0f ("net: stmmac: Implement L3/L4 Filters using TC Flower") Signed-off-by: Jose Abreu <Jose.Abreu@synopsys.com> --- Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com> Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: Jose Abreu <joabreu@synopsys.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: netdev@vger.kernel.org Cc: linux-stm32@st-md-mailman.stormreply.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org --- drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c index 7d972e0fd2b0..9ffae12a2122 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c @@ -577,6 +577,10 @@ static int tc_setup_cls(struct stmmac_priv *priv, { int ret = 0; + /* When RSS is enabled, the filtering will be bypassed */ + if (priv->rss.enable) + return -EBUSY; + switch (cls->command) { case FLOW_CLS_REPLACE: ret = tc_add_flow(priv, cls); -- 2.7.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH net 0/2] net: stmmac: Filtering fixes 2020-01-10 15:23 ` Jose Abreu @ 2020-01-10 19:32 ` David Miller -1 siblings, 0 replies; 8+ messages in thread From: David Miller @ 2020-01-10 19:32 UTC (permalink / raw) To: Jose.Abreu Cc: netdev, Joao.Pinto, peppe.cavallaro, alexandre.torgue, mcoquelin.stm32, linux-stm32, linux-arm-kernel, linux-kernel From: Jose Abreu <Jose.Abreu@synopsys.com> Date: Fri, 10 Jan 2020 16:23:51 +0100 > Two single fixes for the L3 and L4 filtering in stmmac. > > 1) Updates the internal status of RSS when disabling it in order to keep > internal driver status consistent. > > 2) Do not lets user add a filter if RSS is enabled because the filter will > not work correctly as RSS bypasses this mechanism. Series applied and queued up for v5.4 -stable, thanks. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net 0/2] net: stmmac: Filtering fixes @ 2020-01-10 19:32 ` David Miller 0 siblings, 0 replies; 8+ messages in thread From: David Miller @ 2020-01-10 19:32 UTC (permalink / raw) To: Jose.Abreu Cc: Joao.Pinto, alexandre.torgue, netdev, linux-kernel, mcoquelin.stm32, peppe.cavallaro, linux-stm32, linux-arm-kernel From: Jose Abreu <Jose.Abreu@synopsys.com> Date: Fri, 10 Jan 2020 16:23:51 +0100 > Two single fixes for the L3 and L4 filtering in stmmac. > > 1) Updates the internal status of RSS when disabling it in order to keep > internal driver status consistent. > > 2) Do not lets user add a filter if RSS is enabled because the filter will > not work correctly as RSS bypasses this mechanism. Series applied and queued up for v5.4 -stable, thanks. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-01-10 19:32 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-01-10 15:23 [PATCH net 0/2] net: stmmac: Filtering fixes Jose Abreu 2020-01-10 15:23 ` Jose Abreu 2020-01-10 15:23 ` [PATCH net 1/2] net: stmmac: selftests: Update status when disabling RSS Jose Abreu 2020-01-10 15:23 ` Jose Abreu 2020-01-10 15:23 ` [PATCH net 2/2] net: stmmac: tc: Do not setup flower filtering if RSS is enabled Jose Abreu 2020-01-10 15:23 ` Jose Abreu 2020-01-10 19:32 ` [PATCH net 0/2] net: stmmac: Filtering fixes David Miller 2020-01-10 19:32 ` David Miller
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.