diff options
author | Patrick McHardy <kaber@trash.net> | 2013-04-18 22:04:30 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-04-19 14:46:06 -0400 |
commit | 86a9bad3ab6b6f858fd4443b48738cabbb6d094c (patch) | |
tree | 21d41b1c81e0f3e53ac4004627a8c9588099fea1 /drivers/net/ethernet/realtek | |
parent | 1fd9b1fc310314911f66d2f14a8e4f0ef37bf47b (diff) |
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>
Diffstat (limited to 'drivers/net/ethernet/realtek')
-rw-r--r-- | drivers/net/ethernet/realtek/8139cp.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/realtek/r8169.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethernet/realtek/8139cp.c b/drivers/net/ethernet/realtek/8139cp.c index 6d03b52e56f1..7d1fb9ad1296 100644 --- a/drivers/net/ethernet/realtek/8139cp.c +++ b/drivers/net/ethernet/realtek/8139cp.c | |||
@@ -431,7 +431,7 @@ static inline void cp_rx_skb (struct cp_private *cp, struct sk_buff *skb, | |||
431 | cp->dev->stats.rx_bytes += skb->len; | 431 | cp->dev->stats.rx_bytes += skb->len; |
432 | 432 | ||
433 | if (opts2 & RxVlanTagged) | 433 | if (opts2 & RxVlanTagged) |
434 | __vlan_hwaccel_put_tag(skb, swab16(opts2 & 0xffff)); | 434 | __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), swab16(opts2 & 0xffff)); |
435 | 435 | ||
436 | napi_gro_receive(&cp->napi, skb); | 436 | napi_gro_receive(&cp->napi, skb); |
437 | } | 437 | } |
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index 86d5d7909d10..c6dac38fd9cc 100644 --- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c | |||
@@ -1843,7 +1843,7 @@ static void rtl8169_rx_vlan_tag(struct RxDesc *desc, struct sk_buff *skb) | |||
1843 | u32 opts2 = le32_to_cpu(desc->opts2); | 1843 | u32 opts2 = le32_to_cpu(desc->opts2); |
1844 | 1844 | ||
1845 | if (opts2 & RxVlanTag) | 1845 | if (opts2 & RxVlanTag) |
1846 | __vlan_hwaccel_put_tag(skb, swab16(opts2 & 0xffff)); | 1846 | __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), swab16(opts2 & 0xffff)); |
1847 | } | 1847 | } |
1848 | 1848 | ||
1849 | static int rtl8169_gset_tbi(struct net_device *dev, struct ethtool_cmd *cmd) | 1849 | static int rtl8169_gset_tbi(struct net_device *dev, struct ethtool_cmd *cmd) |