diff options
Diffstat (limited to 'net/8021q/vlan_dev.c')
-rw-r--r-- | net/8021q/vlan_dev.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index c1b92cab46c7..9e83272fc5b0 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c | |||
@@ -263,11 +263,10 @@ static int vlan_dev_hard_header(struct sk_buff *skb, struct net_device *dev, | |||
263 | vhdr->h_vlan_TCI = htons(vlan_tci); | 263 | vhdr->h_vlan_TCI = htons(vlan_tci); |
264 | 264 | ||
265 | /* | 265 | /* |
266 | * Set the protocol type. For a packet of type ETH_P_802_3 we | 266 | * Set the protocol type. For a packet of type ETH_P_802_3/2 we |
267 | * put the length in here instead. It is up to the 802.2 | 267 | * put the length in here instead. |
268 | * layer to carry protocol information. | ||
269 | */ | 268 | */ |
270 | if (type != ETH_P_802_3) | 269 | if (type != ETH_P_802_3 && type != ETH_P_802_2) |
271 | vhdr->h_vlan_encapsulated_proto = htons(type); | 270 | vhdr->h_vlan_encapsulated_proto = htons(type); |
272 | else | 271 | else |
273 | vhdr->h_vlan_encapsulated_proto = htons(len); | 272 | vhdr->h_vlan_encapsulated_proto = htons(len); |
@@ -323,7 +322,7 @@ static netdev_tx_t vlan_dev_hard_start_xmit(struct sk_buff *skb, | |||
323 | } | 322 | } |
324 | 323 | ||
325 | 324 | ||
326 | skb->dev = vlan_dev_info(dev)->real_dev; | 325 | skb_set_dev(skb, vlan_dev_info(dev)->real_dev); |
327 | len = skb->len; | 326 | len = skb->len; |
328 | ret = dev_queue_xmit(skb); | 327 | ret = dev_queue_xmit(skb); |
329 | 328 | ||