[net] net: ethernet: adi: adin1110: Fix multicast offloading

Message ID 20230120090846.18172-1-alexandru.tachici@analog.com
State New
Headers
Series [net] net: ethernet: adi: adin1110: Fix multicast offloading |

Commit Message

Alexandru Tachici Jan. 20, 2023, 9:08 a.m. UTC
  Driver marked broadcast/multicast frames as offloaded incorrectly.
Mark them as offloaded only when HW offloading has been enabled.
This should happen only for ADIN2111 when both ports are bridged
by the software.

Fixes: bc93e19d088b ("net: ethernet: adi: Add ADIN1110 support")
Signed-off-by: Alexandru Tachici <alexandru.tachici@analog.com>
---
 drivers/net/ethernet/adi/adin1110.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Andrew Lunn Jan. 24, 2023, 1:45 a.m. UTC | #1
On Fri, Jan 20, 2023 at 11:08:46AM +0200, Alexandru Tachici wrote:
> Driver marked broadcast/multicast frames as offloaded incorrectly.
> Mark them as offloaded only when HW offloading has been enabled.
> This should happen only for ADIN2111 when both ports are bridged
> by the software.
> 
> Fixes: bc93e19d088b ("net: ethernet: adi: Add ADIN1110 support")
> Signed-off-by: Alexandru Tachici <alexandru.tachici@analog.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew
  
patchwork-bot+netdevbpf@kernel.org Jan. 24, 2023, 5:50 a.m. UTC | #2
Hello:

This patch was applied to netdev/net.git (master)
by Jakub Kicinski <kuba@kernel.org>:

On Fri, 20 Jan 2023 11:08:46 +0200 you wrote:
> Driver marked broadcast/multicast frames as offloaded incorrectly.
> Mark them as offloaded only when HW offloading has been enabled.
> This should happen only for ADIN2111 when both ports are bridged
> by the software.
> 
> Fixes: bc93e19d088b ("net: ethernet: adi: Add ADIN1110 support")
> Signed-off-by: Alexandru Tachici <alexandru.tachici@analog.com>
> 
> [...]

Here is the summary with links:
  - [net] net: ethernet: adi: adin1110: Fix multicast offloading
    https://git.kernel.org/netdev/net/c/8a4f6d023221

You are awesome, thank you!
  

Patch

diff --git a/drivers/net/ethernet/adi/adin1110.c b/drivers/net/ethernet/adi/adin1110.c
index 0805f249fff2..c26b8597945b 100644
--- a/drivers/net/ethernet/adi/adin1110.c
+++ b/drivers/net/ethernet/adi/adin1110.c
@@ -356,7 +356,7 @@  static int adin1110_read_fifo(struct adin1110_port_priv *port_priv)
 
 	if ((port_priv->flags & IFF_ALLMULTI && rxb->pkt_type == PACKET_MULTICAST) ||
 	    (port_priv->flags & IFF_BROADCAST && rxb->pkt_type == PACKET_BROADCAST))
-		rxb->offload_fwd_mark = 1;
+		rxb->offload_fwd_mark = port_priv->priv->forwarding;
 
 	netif_rx(rxb);