net: vlan: add protocol argument to packet tagging functions
Add a protocol argument to the VLAN packet tagging functions. In case of HW tagging, we need that protocol available in the ndo_start_xmit functions, so it is stored in a new field in the skb. The new field fits into a hole (on 64 bit) and doesn't increase the sks's size. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
1fd9b1fc31
commit
86a9bad3ab
@@ -1936,7 +1936,7 @@ static int rhine_rx(struct net_device *dev, int limit)
|
||||
skb->protocol = eth_type_trans(skb, dev);
|
||||
|
||||
if (unlikely(desc_length & DescTag))
|
||||
__vlan_hwaccel_put_tag(skb, vlan_tci);
|
||||
__vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), vlan_tci);
|
||||
netif_receive_skb(skb);
|
||||
|
||||
u64_stats_update_begin(&rp->rx_stats.syncp);
|
||||
|
@@ -2080,7 +2080,7 @@ static int velocity_receive_frame(struct velocity_info *vptr, int idx)
|
||||
if (rd->rdesc0.RSR & RSR_DETAG) {
|
||||
u16 vid = swab16(le16_to_cpu(rd->rdesc1.PQTAG));
|
||||
|
||||
__vlan_hwaccel_put_tag(skb, vid);
|
||||
__vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), vid);
|
||||
}
|
||||
netif_rx(skb);
|
||||
|
||||
|
Reference in New Issue
Block a user