From: stephen hemminger <stephen@networkplumber.org>
Date: Mon, 5 Aug 2013 00:19:38 +0000 (-0700)
Subject: bridge: fix rcu check warning in multicast port group
X-Git-Tag: firefly_0821_release~176^2~5420^2~362
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=762a3d89ebf5873f71b3839449ac6562049ef1ce;p=firefly-linux-kernel-4.4.55.git

bridge: fix rcu check warning in multicast port group

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>
---

diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c
index 0daae3ec2355..e4d5cd43b7fb 100644
--- a/net/bridge/br_mdb.c
+++ b/net/bridge/br_mdb.c
@@ -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]) {
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index 1514c9f4f102..d41283c57952 100644
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -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);