Release 4.11 net/ipv6/ip6_icmp.c
#include <linux/export.h>
#include <linux/icmpv6.h>
#include <linux/mutex.h>
#include <linux/netdevice.h>
#include <linux/spinlock.h>
#include <net/ipv6.h>
#if IS_ENABLED(CONFIG_IPV6)
static ip6_icmp_send_t __rcu *ip6_icmp_send;
int inet6_register_icmp_sender(ip6_icmp_send_t *fn)
{
return (cmpxchg((ip6_icmp_send_t **)&ip6_icmp_send, NULL, fn) == NULL) ?
0 : -EBUSY;
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Pravin B Shelar | 34 | 100.00% | 1 | 100.00% |
Total | 34 | 100.00% | 1 | 100.00% |
EXPORT_SYMBOL(inet6_register_icmp_sender);
int inet6_unregister_icmp_sender(ip6_icmp_send_t *fn)
{
int ret;
ret = (cmpxchg((ip6_icmp_send_t **)&ip6_icmp_send, fn, NULL) == fn) ?
0 : -EINVAL;
synchronize_net();
return ret;
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Pravin B Shelar | 44 | 100.00% | 1 | 100.00% |
Total | 44 | 100.00% | 1 | 100.00% |
EXPORT_SYMBOL(inet6_unregister_icmp_sender);
void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info)
{
ip6_icmp_send_t *send;
rcu_read_lock();
send = rcu_dereference(ip6_icmp_send);
if (!send)
goto out;
send(skb, type, code, info, NULL);
out:
rcu_read_unlock();
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Pravin B Shelar | 57 | 96.61% | 1 | 50.00% |
Eric Dumazet | 2 | 3.39% | 1 | 50.00% |
Total | 59 | 100.00% | 2 | 100.00% |
EXPORT_SYMBOL(icmpv6_send);
#endif
Overall Contributors
Person | Tokens | Prop | Commits | CommitProp |
Pravin B Shelar | 182 | 98.91% | 1 | 50.00% |
Eric Dumazet | 2 | 1.09% | 1 | 50.00% |
Total | 184 | 100.00% | 2 | 100.00% |
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.