bridge: fix rcu check warning in multicast port group
authorstephen hemminger <stephen@networkplumber.org>
Mon, 5 Aug 2013 00:19:38 +0000 (17:19 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 5 Aug 2013 01:41:52 +0000 (18:41 -0700)
Use of RCU here with out marked pointer and function doesn't match prototype
with sparse.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_mdb.c
net/bridge/br_private.h

index 0daae3ec2355543bce3600001db5fd32cf6d6ff7..e4d5cd43b7fbd2596ab9c785e91273ba64626f97 100644 (file)
@@ -61,7 +61,8 @@ static int br_mdb_fill_info(struct sk_buff *skb, struct netlink_callback *cb,
 
        for (i = 0; i < mdb->max; i++) {
                struct net_bridge_mdb_entry *mp;
-               struct net_bridge_port_group *p, **pp;
+               struct net_bridge_port_group *p;
+               struct net_bridge_port_group __rcu **pp;
                struct net_bridge_port *port;
 
                hlist_for_each_entry_rcu(mp, &mdb->mhash[i], hlist[mdb->ver]) {
index 1514c9f4f1029c0e932c3c3f4d2e8735504995cb..d41283c57952104c57f0eb674e7c6294599b32dc 100644 (file)
@@ -466,7 +466,7 @@ extern void br_multicast_free_pg(struct rcu_head *head);
 extern struct net_bridge_port_group *br_multicast_new_port_group(
                                struct net_bridge_port *port,
                                struct br_ip *group,
-                               struct net_bridge_port_group *next,
+                               struct net_bridge_port_group __rcu *next,
                                unsigned char state);
 extern void br_mdb_init(void);
 extern void br_mdb_uninit(void);