net: dsa: tag_brcm: Fix skb->fwd_offload_mark location
authorFlorian Fainelli <f.fainelli@gmail.com>
Tue, 7 Apr 2020 00:54:12 +0000 (17:54 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 13 Apr 2020 08:32:53 +0000 (10:32 +0200)
When the backport of upstream commit
0e62f543bed03a64495bd2651d4fe1aa4bcb7fe5 ("net: dsa: Fix duplicate
frames flooded by learning") was done the assignment of
skb->fwd_offload_mark would land in brcm_tag_xmit() which is incorrect,
it should have been in brcm_tag_rcv().

Fixes: 5e845dc62f38 ("net: dsa: Fix duplicate frames flooded by learning")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/dsa/tag_brcm.c

index 76d55a8..9807433 100644 (file)
@@ -84,8 +84,6 @@ static struct sk_buff *brcm_tag_xmit(struct sk_buff *skb, struct net_device *dev
                brcm_tag[2] = BRCM_IG_DSTMAP2_MASK;
        brcm_tag[3] = (1 << p->port) & BRCM_IG_DSTMAP1_MASK;
 
-       skb->offload_fwd_mark = 1;
-
        return skb;
 
 out_free:
@@ -148,6 +146,8 @@ static int brcm_tag_rcv(struct sk_buff *skb, struct net_device *dev,
        skb->dev->stats.rx_packets++;
        skb->dev->stats.rx_bytes += skb->len;
 
+       skb->offload_fwd_mark = 1;
+
        netif_receive_skb(skb);
 
        return 0;