aboutsummaryrefslogtreecommitdiffstats
path: root/net/bridge/br_vlan.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/bridge/br_vlan.c')
-rw-r--r--net/bridge/br_vlan.c21
1 files changed, 0 insertions, 21 deletions
diff --git a/net/bridge/br_vlan.c b/net/bridge/br_vlan.c
index 7ffc801467ec..4ca4d0a0151c 100644
--- a/net/bridge/br_vlan.c
+++ b/net/bridge/br_vlan.c
@@ -151,27 +151,6 @@ struct sk_buff *br_handle_vlan(struct net_bridge *br,
151 br_vlan_get_tag(skb, &vid); 151 br_vlan_get_tag(skb, &vid);
152 if (test_bit(vid, pv->untagged_bitmap)) 152 if (test_bit(vid, pv->untagged_bitmap))
153 skb = br_vlan_untag(skb); 153 skb = br_vlan_untag(skb);
154 else {
155 /* Egress policy says "send tagged". If output device
156 * is the bridge, we need to add the VLAN header
157 * ourselves since we'll be going through the RX path.
158 * Sending to ports puts the frame on the TX path and
159 * we let dev_hard_start_xmit() add the header.
160 */
161 if (skb->protocol != htons(ETH_P_8021Q) &&
162 pv->port_idx == 0) {
163 /* vlan_put_tag expects skb->data to point to
164 * mac header.
165 */
166 skb_push(skb, ETH_HLEN);
167 skb = __vlan_put_tag(skb, skb->vlan_proto, skb->vlan_tci);
168 if (!skb)
169 goto out;
170 /* put skb->data back to where it was */
171 skb_pull(skb, ETH_HLEN);
172 skb->vlan_tci = 0;
173 }
174 }
175 154
176out: 155out:
177 return skb; 156 return skb;