aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2013-04-18 22:04:30 -0400
committerDavid S. Miller <davem@davemloft.net>2013-04-19 14:46:06 -0400
commit86a9bad3ab6b6f858fd4443b48738cabbb6d094c (patch)
tree21d41b1c81e0f3e53ac4004627a8c9588099fea1 /drivers/net/ethernet/broadcom
parent1fd9b1fc310314911f66d2f14a8e4f0ef37bf47b (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.c2
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c4
-rw-r--r--drivers/net/ethernet/broadcom/tg3.c2
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);