diff options
author | Lennert Buytenhek <buytenh@marvell.com> | 2008-11-11 00:52:42 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-11 00:52:42 -0500 |
commit | 14ee6742b1b5df275cd2d771b4562b4f808c9419 (patch) | |
tree | a3e4e3ded1c6f903b3a2abff6e232e473ae69634 /net/dsa/tag_dsa.c | |
parent | 5cd33db2120b5ce972568711156f91da83bff2d7 (diff) |
dsa: fix skb->pkt_type when mac address of slave interface differs
When a dsa slave interface has a mac address that differs from that
of the master interface, eth_type_trans() won't explicitly set
skb->pkt_type back to PACKET_HOST -- we need to do this ourselves
before calling eth_type_trans().
Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dsa/tag_dsa.c')
-rw-r--r-- | net/dsa/tag_dsa.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/dsa/tag_dsa.c b/net/dsa/tag_dsa.c index bdc0510b53b..31866543332 100644 --- a/net/dsa/tag_dsa.c +++ b/net/dsa/tag_dsa.c | |||
@@ -159,6 +159,7 @@ static int dsa_rcv(struct sk_buff *skb, struct net_device *dev, | |||
159 | 159 | ||
160 | skb->dev = ds->ports[source_port]; | 160 | skb->dev = ds->ports[source_port]; |
161 | skb_push(skb, ETH_HLEN); | 161 | skb_push(skb, ETH_HLEN); |
162 | skb->pkt_type = PACKET_HOST; | ||
162 | skb->protocol = eth_type_trans(skb, skb->dev); | 163 | skb->protocol = eth_type_trans(skb, skb->dev); |
163 | 164 | ||
164 | skb->dev->last_rx = jiffies; | 165 | skb->dev->last_rx = jiffies; |