rtnetlink: fix rtnl_link msghandler rcu annotations
authorFlorian Westphal <fw@strlen.de>
Mon, 4 Dec 2017 21:42:30 +0000 (22:42 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 5 Dec 2017 16:14:44 +0000 (11:14 -0500)
Incorrect/missing annotations caused a few sparse warnings:

rtnetlink.c:155:15: incompatible types .. (different address spaces)
rtnetlink.c:157:23: incompatible types .. (different address spaces)
rtnetlink.c:185:15: incompatible types .. (different address spaces)
rtnetlink.c:285:15: incompatible types .. (different address spaces)
rtnetlink.c:317:9: incompatible types .. (different address spaces)
rtnetlink.c:3054:23: incompatible types .. (different address spaces)

no change in generated code.

Fixes: addf9b90de22f7 ("net: rtnetlink: use rcu to free rtnl message handlers")
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/rtnetlink.c

index 642b3af..a4faefd 100644 (file)
@@ -129,7 +129,7 @@ bool lockdep_rtnl_is_held(void)
 EXPORT_SYMBOL(lockdep_rtnl_is_held);
 #endif /* #ifdef CONFIG_PROVE_LOCKING */
 
-static struct rtnl_link __rcu **rtnl_msg_handlers[RTNL_FAMILY_MAX + 1];
+static struct rtnl_link *__rcu *rtnl_msg_handlers[RTNL_FAMILY_MAX + 1];
 
 static inline int rtm_msgindex(int msgtype)
 {
@@ -164,7 +164,8 @@ static int rtnl_register_internal(struct module *owner,
                                  rtnl_doit_func doit, rtnl_dumpit_func dumpit,
                                  unsigned int flags)
 {
-       struct rtnl_link **tab, *link, *old;
+       struct rtnl_link *link, *old;
+       struct rtnl_link __rcu **tab;
        int msgindex;
        int ret = -ENOBUFS;