Loading net/ipv6/raw.c +7 −7 Original line number Diff line number Diff line Loading @@ -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) 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, struct sk_buff *skb)) static mh_filter_t __rcu *mh_filter __read_mostly; int rawv6_mh_filter_register(mh_filter_t filter) { rcu_assign_pointer(mh_filter, filter); return 0; } EXPORT_SYMBOL(rawv6_mh_filter_register); int rawv6_mh_filter_unregister(int (*filter)(struct sock *sock, struct sk_buff *skb)) int rawv6_mh_filter_unregister(mh_filter_t filter) { rcu_assign_pointer(mh_filter, NULL); synchronize_rcu(); Loading Loading @@ -192,10 +192,10 @@ static int ipv6_raw_deliver(struct sk_buff *skb, int nexthdr) * policy is placed in rawv6_rcv() because it is * required for each socket. */ int (*filter)(struct sock *sock, struct sk_buff *skb); mh_filter_t *filter; filter = rcu_dereference(mh_filter); filtered = filter ? filter(sk, skb) : 0; filtered = filter ? (*filter)(sk, skb) : 0; break; } #endif Loading Loading
net/ipv6/raw.c +7 −7 Original line number Diff line number Diff line Loading @@ -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) 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, struct sk_buff *skb)) static mh_filter_t __rcu *mh_filter __read_mostly; int rawv6_mh_filter_register(mh_filter_t filter) { rcu_assign_pointer(mh_filter, filter); return 0; } EXPORT_SYMBOL(rawv6_mh_filter_register); int rawv6_mh_filter_unregister(int (*filter)(struct sock *sock, struct sk_buff *skb)) int rawv6_mh_filter_unregister(mh_filter_t filter) { rcu_assign_pointer(mh_filter, NULL); synchronize_rcu(); Loading Loading @@ -192,10 +192,10 @@ static int ipv6_raw_deliver(struct sk_buff *skb, int nexthdr) * policy is placed in rawv6_rcv() because it is * required for each socket. */ int (*filter)(struct sock *sock, struct sk_buff *skb); mh_filter_t *filter; filter = rcu_dereference(mh_filter); filtered = filter ? filter(sk, skb) : 0; filtered = filter ? (*filter)(sk, skb) : 0; break; } #endif Loading