From: Andrew Lunn andrew@lunn.ch
commit b44d52a50bc6f191f0ae03f65de8401f3ef039b3 upstream.
A packet received on a trunk will have bit 2 set in Forward DSA tagged frame. Bit 1 can be either 0 or 1 and is otherwise undefined and bit 0 indicates the frame CFI. Masking with 7 thus results in frames as being identified as being from a trunk when in fact they are not. Fix the mask to just look at bit 2.
Fixes: 5b60dadb71db ("net: dsa: tag_dsa: Support reception of packets from LAG devices") Signed-off-by: Andrew Lunn andrew@lunn.ch Reviewed-by: Vladimir Oltean vladimir.oltean@nxp.com Signed-off-by: David S. Miller davem@davemloft.net Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org --- net/dsa/tag_dsa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
--- a/net/dsa/tag_dsa.c +++ b/net/dsa/tag_dsa.c @@ -176,7 +176,7 @@ static struct sk_buff *dsa_rcv_ll(struct case DSA_CMD_FORWARD: skb->offload_fwd_mark = 1;
- trunk = !!(dsa_header[1] & 7); + trunk = !!(dsa_header[1] & 4); break;
case DSA_CMD_TO_CPU: