diff options
Diffstat (limited to 'net/bridge/br_input.c')
-rw-r--r-- | net/bridge/br_input.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c index 53b39851d87d..a82dde2d2ead 100644 --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c | |||
@@ -11,6 +11,7 @@ | |||
11 | * 2 of the License, or (at your option) any later version. | 11 | * 2 of the License, or (at your option) any later version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/slab.h> | ||
14 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
15 | #include <linux/netdevice.h> | 16 | #include <linux/netdevice.h> |
16 | #include <linux/etherdevice.h> | 17 | #include <linux/etherdevice.h> |
@@ -70,7 +71,7 @@ int br_handle_frame_finish(struct sk_buff *skb) | |||
70 | 71 | ||
71 | if (is_multicast_ether_addr(dest)) { | 72 | if (is_multicast_ether_addr(dest)) { |
72 | mdst = br_mdb_get(br, skb); | 73 | mdst = br_mdb_get(br, skb); |
73 | if (mdst || BR_INPUT_SKB_CB(skb)->mrouters_only) { | 74 | if (mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) { |
74 | if ((mdst && !hlist_unhashed(&mdst->mglist)) || | 75 | if ((mdst && !hlist_unhashed(&mdst->mglist)) || |
75 | br_multicast_is_router(br)) | 76 | br_multicast_is_router(br)) |
76 | skb2 = skb; | 77 | skb2 = skb; |
@@ -90,7 +91,7 @@ int br_handle_frame_finish(struct sk_buff *skb) | |||
90 | 91 | ||
91 | if (skb) { | 92 | if (skb) { |
92 | if (dst) | 93 | if (dst) |
93 | br_forward(dst->dst, skb); | 94 | br_forward(dst->dst, skb, skb2); |
94 | else | 95 | else |
95 | br_flood_forward(br, skb, skb2); | 96 | br_flood_forward(br, skb, skb2); |
96 | } | 97 | } |