aboutsummaryrefslogtreecommitdiffstats
path: root/net/bridge/br_input.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/bridge/br_input.c')
-rw-r--r--net/bridge/br_input.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
index 787d7dad6b7e..a63f227ad963 100644
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
@@ -45,6 +45,10 @@ static int br_pass_frame_up(struct sk_buff *skb)
45 return NET_RX_DROP; 45 return NET_RX_DROP;
46 } 46 }
47 47
48 skb = br_handle_vlan(br, br_get_vlan_info(br), skb);
49 if (!skb)
50 return NET_RX_DROP;
51
48 indev = skb->dev; 52 indev = skb->dev;
49 skb->dev = brdev; 53 skb->dev = brdev;
50 54
@@ -61,11 +65,12 @@ int br_handle_frame_finish(struct sk_buff *skb)
61 struct net_bridge_fdb_entry *dst; 65 struct net_bridge_fdb_entry *dst;
62 struct net_bridge_mdb_entry *mdst; 66 struct net_bridge_mdb_entry *mdst;
63 struct sk_buff *skb2; 67 struct sk_buff *skb2;
68 u16 vid = 0;
64 69
65 if (!p || p->state == BR_STATE_DISABLED) 70 if (!p || p->state == BR_STATE_DISABLED)
66 goto drop; 71 goto drop;
67 72
68 if (!br_allowed_ingress(p->br, nbp_get_vlan_info(p), skb)) 73 if (!br_allowed_ingress(p->br, nbp_get_vlan_info(p), skb, &vid))
69 goto drop; 74 goto drop;
70 75
71 /* insert into forwarding database after filtering to avoid spoofing */ 76 /* insert into forwarding database after filtering to avoid spoofing */