lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 30 Apr 2013 16:43:11 +0800 From: Cong Wang <amwang@...hat.com> To: netdev@...r.kernel.org Cc: Ben Hutchings <bhutchings@...arflare.com>, Bjørn Mork <bjorn@...k.no>, Stephen Hemminger <stephen@...workplumber.org>, "David S. Miller" <davem@...emloft.net>, Cong Wang <amwang@...hat.com> Subject: [Patch net-next v7 2/6] ipv6: export a stub for ipv6_sock_mc_join and ipv6_sock_mc_drop From: Cong Wang <amwang@...hat.com> In case IPv6 is compiled as a module, introduce a stub for ipv6_sock_mc_join and ipv6_sock_mc_drop. It will be used by vxlan module. Suggested by Ben. Cc: Ben Hutchings <bhutchings@...arflare.com> Cc: Bjørn Mork <bjorn@...k.no> Cc: Stephen Hemminger <stephen@...workplumber.org> Cc: David S. Miller <davem@...emloft.net> Signed-off-by: Cong Wang <amwang@...hat.com> --- include/net/addrconf.h | 9 +++++++++ net/ipv6/addrconf_core.c | 3 +++ net/ipv6/mcast.c | 7 +++++++ 3 files changed, 19 insertions(+), 0 deletions(-) diff --git a/include/net/addrconf.h b/include/net/addrconf.h index 84a6440..c82e00f 100644 --- a/include/net/addrconf.h +++ b/include/net/addrconf.h @@ -140,6 +140,15 @@ extern bool inet6_mc_check(struct sock *sk, const struct in6_addr *mc_addr, const struct in6_addr *src_addr); +/* A stub used by vxlan module */ +struct ipv6_mcast_ops { + int (*ipv6_sock_mc_join)(struct sock *sk, int ifindex, + const struct in6_addr *addr); + int (*ipv6_sock_mc_drop)(struct sock *sk, int ifindex, + const struct in6_addr *addr); +}; +extern const struct ipv6_mcast_ops *ipv6_mcast_ops __read_mostly; + extern int ipv6_dev_mc_inc(struct net_device *dev, const struct in6_addr *addr); extern int __ipv6_dev_mc_dec(struct inet6_dev *idev, const struct in6_addr *addr); extern int ipv6_dev_mc_dec(struct net_device *dev, const struct in6_addr *addr); diff --git a/net/ipv6/addrconf_core.c b/net/ipv6/addrconf_core.c index 7210456..8c7cb63 100644 --- a/net/ipv6/addrconf_core.c +++ b/net/ipv6/addrconf_core.c @@ -97,3 +97,6 @@ int inet6addr_notifier_call_chain(unsigned long val, void *v) return atomic_notifier_call_chain(&inet6addr_chain, val, v); } EXPORT_SYMBOL(inet6addr_notifier_call_chain); + +const struct ipv6_mcast_ops *ipv6_mcast_ops __read_mostly; +EXPORT_SYMBOL_GPL(ipv6_mcast_ops); diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c index bfa6cc3..cfa31d2 100644 --- a/net/ipv6/mcast.c +++ b/net/ipv6/mcast.c @@ -2665,12 +2665,19 @@ static struct pernet_operations igmp6_net_ops = { .exit = igmp6_net_exit, }; +static const struct ipv6_mcast_ops ipv6_mcast_ops_impl = { + .ipv6_sock_mc_join = ipv6_sock_mc_join, + .ipv6_sock_mc_drop = ipv6_sock_mc_drop, +}; + int __init igmp6_init(void) { + ipv6_mcast_ops = &ipv6_mcast_ops_impl; return register_pernet_subsys(&igmp6_net_ops); } void igmp6_cleanup(void) { + ipv6_mcast_ops = NULL; unregister_pernet_subsys(&igmp6_net_ops); } -- 1.7.7.6 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists