cregit-Linux how code gets into the kernel

Release 4.15 net/ipv6/ip6_icmp.c

Directory: net/ipv6
// SPDX-License-Identifier: GPL-2.0
#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

PersonTokensPropCommitsCommitProp
Pravin B Shelar34100.00%1100.00%
Total34100.00%1100.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

PersonTokensPropCommitsCommitProp
Pravin B Shelar44100.00%1100.00%
Total44100.00%1100.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

PersonTokensPropCommitsCommitProp
Pravin B Shelar5796.61%150.00%
Eric Dumazet23.39%150.00%
Total59100.00%2100.00%

EXPORT_SYMBOL(icmpv6_send); #endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Pravin B Shelar18298.38%133.33%
Eric Dumazet21.08%133.33%
Greg Kroah-Hartman10.54%133.33%
Total185100.00%3100.00%
Directory: net/ipv6
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.