Commit f2eda47d authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

ipv6: raw: rcu annotations

Remove sparse warnings, using a function typedef to be able to use __rcu
annotation on mh_filter pointer.
Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6193d2be
...@@ -123,18 +123,18 @@ static __inline__ int icmpv6_filter(struct sock *sk, struct sk_buff *skb) ...@@ -123,18 +123,18 @@ static __inline__ int icmpv6_filter(struct sock *sk, struct sk_buff *skb)
} }
#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
static int (*mh_filter)(struct sock *sock, struct sk_buff *skb); typedef int mh_filter_t(struct sock *sock, struct sk_buff *skb);
int rawv6_mh_filter_register(int (*filter)(struct sock *sock, static mh_filter_t __rcu *mh_filter __read_mostly;
struct sk_buff *skb))
int rawv6_mh_filter_register(mh_filter_t filter)
{ {
rcu_assign_pointer(mh_filter, filter); rcu_assign_pointer(mh_filter, filter);
return 0; return 0;
} }
EXPORT_SYMBOL(rawv6_mh_filter_register); EXPORT_SYMBOL(rawv6_mh_filter_register);
int rawv6_mh_filter_unregister(int (*filter)(struct sock *sock, int rawv6_mh_filter_unregister(mh_filter_t filter)
struct sk_buff *skb))
{ {
rcu_assign_pointer(mh_filter, NULL); rcu_assign_pointer(mh_filter, NULL);
synchronize_rcu(); synchronize_rcu();
...@@ -192,10 +192,10 @@ static int ipv6_raw_deliver(struct sk_buff *skb, int nexthdr) ...@@ -192,10 +192,10 @@ static int ipv6_raw_deliver(struct sk_buff *skb, int nexthdr)
* policy is placed in rawv6_rcv() because it is * policy is placed in rawv6_rcv() because it is
* required for each socket. * required for each socket.
*/ */
int (*filter)(struct sock *sock, struct sk_buff *skb); mh_filter_t *filter;
filter = rcu_dereference(mh_filter); filter = rcu_dereference(mh_filter);
filtered = filter ? filter(sk, skb) : 0; filtered = filter ? (*filter)(sk, skb) : 0;
break; break;
} }
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment