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/broadcom | |
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/broadcom')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 4 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/tg3.c | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c index 42a8bc8df5dd..5d204492c603 100644 --- a/drivers/net/ethernet/broadcom/bnx2.c +++ b/drivers/net/ethernet/broadcom/bnx2.c | |||
@@ -3211,7 +3211,7 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget) | |||
3211 | } | 3211 | } |
3212 | if ((status & L2_FHDR_STATUS_L2_VLAN_TAG) && | 3212 | if ((status & L2_FHDR_STATUS_L2_VLAN_TAG) && |
3213 | !(bp->rx_mode & BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG)) | 3213 | !(bp->rx_mode & BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG)) |
3214 | __vlan_hwaccel_put_tag(skb, rx_hdr->l2_fhdr_vlan_tag); | 3214 | __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), rx_hdr->l2_fhdr_vlan_tag); |
3215 | 3215 | ||
3216 | skb->protocol = eth_type_trans(skb, bp->dev); | 3216 | skb->protocol = eth_type_trans(skb, bp->dev); |
3217 | 3217 | ||
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c index 352e58ede4d5..6b50443d3456 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | |||
@@ -719,7 +719,7 @@ static void bnx2x_tpa_stop(struct bnx2x *bp, struct bnx2x_fastpath *fp, | |||
719 | if (!bnx2x_fill_frag_skb(bp, fp, tpa_info, pages, | 719 | if (!bnx2x_fill_frag_skb(bp, fp, tpa_info, pages, |
720 | skb, cqe, cqe_idx)) { | 720 | skb, cqe, cqe_idx)) { |
721 | if (tpa_info->parsing_flags & PARSING_FLAGS_VLAN) | 721 | if (tpa_info->parsing_flags & PARSING_FLAGS_VLAN) |
722 | __vlan_hwaccel_put_tag(skb, tpa_info->vlan_tag); | 722 | __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), tpa_info->vlan_tag); |
723 | bnx2x_gro_receive(bp, fp, skb); | 723 | bnx2x_gro_receive(bp, fp, skb); |
724 | } else { | 724 | } else { |
725 | DP(NETIF_MSG_RX_STATUS, | 725 | DP(NETIF_MSG_RX_STATUS, |
@@ -994,7 +994,7 @@ reuse_rx: | |||
994 | 994 | ||
995 | if (le16_to_cpu(cqe_fp->pars_flags.flags) & | 995 | if (le16_to_cpu(cqe_fp->pars_flags.flags) & |
996 | PARSING_FLAGS_VLAN) | 996 | PARSING_FLAGS_VLAN) |
997 | __vlan_hwaccel_put_tag(skb, | 997 | __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), |
998 | le16_to_cpu(cqe_fp->vlan_tag)); | 998 | le16_to_cpu(cqe_fp->vlan_tag)); |
999 | napi_gro_receive(&fp->napi, skb); | 999 | napi_gro_receive(&fp->napi, skb); |
1000 | 1000 | ||
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index 0c22c9a059c4..ac83c87e0b1b 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c | |||
@@ -6715,7 +6715,7 @@ static int tg3_rx(struct tg3_napi *tnapi, int budget) | |||
6715 | 6715 | ||
6716 | if (desc->type_flags & RXD_FLAG_VLAN && | 6716 | if (desc->type_flags & RXD_FLAG_VLAN && |
6717 | !(tp->rx_mode & RX_MODE_KEEP_VLAN_TAG)) | 6717 | !(tp->rx_mode & RX_MODE_KEEP_VLAN_TAG)) |
6718 | __vlan_hwaccel_put_tag(skb, | 6718 | __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), |
6719 | desc->err_vlan & RXD_VLAN_MASK); | 6719 | desc->err_vlan & RXD_VLAN_MASK); |
6720 | 6720 | ||
6721 | napi_gro_receive(&tnapi->napi, skb); | 6721 | napi_gro_receive(&tnapi->napi, skb); |