From 8123905a12ebf0c2aec4104701ee1ecc8214eb32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?YOSHIFUJI=20Hideaki=20/=20=E5=90=89=E8=97=A4=E8=8B=B1?= =?UTF-8?q?=E6=98=8E?= Date: Mon, 15 Mar 2010 21:51:18 +0000 Subject: [PATCH] --- yaml --- r: 188159 b: refs/heads/master c: 32dec5dd0233ebffa9cae25ce7ba6daeb7df4467 h: refs/heads/master i: 188157: c42e937e9a8d50a4a8c32d2ecf50267ff2bb1023 188155: 73ef71eab2315fe49d1dab035d3f9efb34871f2b 188151: f8e70817fe69ac5b51a459b57f7de8768fd66cc5 188143: e40e02007abe3c6abfffd72626bd89cb27ffb6af 188127: 2e0fd1bd29e895f88b40ae98208a7fa0e20caae3 188095: 5471ef9732533e9f3bf065804ffde09273dccff4 188031: ac25f132843e78b7fe30f9e0c3ede75ed0f19a46 187903: 163ff86523f3fec701a42ac24e9ed86ecbdbfee3 v: v3 --- [refs] | 2 +- trunk/net/bridge/br_device.c | 2 +- trunk/net/bridge/br_input.c | 2 +- trunk/net/bridge/br_private.h | 8 ++++++++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 41773098126f..89ce7637e8a5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 858a18a6a2f74e8f0e5b2e9671d4b74694aba708 +refs/heads/master: 32dec5dd0233ebffa9cae25ce7ba6daeb7df4467 diff --git a/trunk/net/bridge/br_device.c b/trunk/net/bridge/br_device.c index eb7062d2e9e5..90a9024e5c1e 100644 --- a/trunk/net/bridge/br_device.c +++ b/trunk/net/bridge/br_device.c @@ -40,7 +40,7 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev) goto out; mdst = br_mdb_get(br, skb); - if (mdst || BR_INPUT_SKB_CB(skb)->mrouters_only) + if (mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) br_multicast_deliver(mdst, skb); else br_flood_deliver(br, skb); diff --git a/trunk/net/bridge/br_input.c b/trunk/net/bridge/br_input.c index 08a72e63fb8e..d74d570fc848 100644 --- a/trunk/net/bridge/br_input.c +++ b/trunk/net/bridge/br_input.c @@ -70,7 +70,7 @@ int br_handle_frame_finish(struct sk_buff *skb) if (is_multicast_ether_addr(dest)) { mdst = br_mdb_get(br, skb); - if (mdst || BR_INPUT_SKB_CB(skb)->mrouters_only) { + if (mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) { if ((mdst && !hlist_unhashed(&mdst->mglist)) || br_multicast_is_router(br)) skb2 = skb; diff --git a/trunk/net/bridge/br_private.h b/trunk/net/bridge/br_private.h index bfb8feb310a6..846d7d1e2075 100644 --- a/trunk/net/bridge/br_private.h +++ b/trunk/net/bridge/br_private.h @@ -206,12 +206,20 @@ struct net_bridge struct br_input_skb_cb { struct net_device *brdev; +#ifdef CONFIG_BRIDGE_IGMP_SNOOPING int igmp; int mrouters_only; +#endif }; #define BR_INPUT_SKB_CB(__skb) ((struct br_input_skb_cb *)(__skb)->cb) +#ifdef CONFIG_BRIDGE_IGMP_SNOOPING +# define BR_INPUT_SKB_CB_MROUTERS_ONLY(__skb) (BR_INPUT_SKB_CB(__skb)->mrouters_only) +#else +# define BR_INPUT_SKB_CB_MROUTERS_ONLY(__skb) (0) +#endif + extern struct notifier_block br_device_notifier; extern const u8 br_group_address[ETH_ALEN];