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,  		vhdr->h_vlan_TCI = htons(vlan_tci);  		/* -		 *  Set the protocol type. For a packet of type ETH_P_802_3 we -		 *  put the length in here instead. It is up to the 802.2 -		 *  layer to carry protocol information. +		 *  Set the protocol type. For a packet of type ETH_P_802_3/2 we +		 *  put the length in here instead.  		 */ -		if (type != ETH_P_802_3) +		if (type != ETH_P_802_3 && type != ETH_P_802_2)  			vhdr->h_vlan_encapsulated_proto = htons(type);  		else  			vhdr->h_vlan_encapsulated_proto = htons(len); @@ -323,7 +322,7 @@ static netdev_tx_t vlan_dev_hard_start_xmit(struct sk_buff *skb,  	} -	skb->dev = vlan_dev_info(dev)->real_dev; +	skb_set_dev(skb, vlan_dev_info(dev)->real_dev);  	len = skb->len;  	ret = dev_queue_xmit(skb);  |