1 --- a/net/dsa/tag_trailer.c
2 +++ b/net/dsa/tag_trailer.c
3 @@ -44,7 +44,12 @@ static struct sk_buff *trailer_xmit(stru
5 trailer = skb_put(nskb, 4);
8 +#ifdef CONFIG_NET_DSA_RTL83XX
9 + trailer[1] = dp->index;
11 trailer[1] = 1 << dp->index;
12 +#endif /* CONFIG_NET_DSA_RTL83XX */
16 @@ -61,12 +66,20 @@ static struct sk_buff *trailer_rcv(struc
19 trailer = skb_tail_pointer(skb) - 4;
21 +#ifdef CONFIG_NET_DSA_RTL83XX
22 + if (trailer[0] != 0x80 || (trailer[1] & 0xe0) != 0x00 ||
23 + (trailer[2] & 0xef) != 0x00 || trailer[3] != 0x00)
26 + source_port = trailer[1] & 0x1f;
28 if (trailer[0] != 0x80 || (trailer[1] & 0xf8) != 0x00 ||
29 (trailer[2] & 0xef) != 0x00 || trailer[3] != 0x00)
32 source_port = trailer[1] & 7;
35 skb->dev = dsa_master_find_slave(dev, 0, source_port);