aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/protocol.c
diff options
context:
space:
mode:
authorVlad Yasevich <vyasevic@redhat.com>2012-11-15 03:49:22 -0500
committerDavid S. Miller <davem@davemloft.net>2012-11-15 17:39:24 -0500
commitc6b641a4c6b32f39db678c2441cb1ef824110d74 (patch)
tree251c4f988a2aca2b9b031afe192f3ae4705d3692 /net/ipv6/protocol.c
parent808a8f884554f93315f663b2694addb4a177c578 (diff)
ipv6: Pull IPv6 GSO registration out of the module
Sing GSO support is now separate, pull it out of the module and make it its own init call. Remove the cleanup functions as they are no longer called. Signed-off-by: Vlad Yasevich <vyasevic@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/protocol.c')
-rw-r--r--net/ipv6/protocol.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/net/ipv6/protocol.c b/net/ipv6/protocol.c
index f7c53a7d5cb0..22d1bd4670da 100644
--- a/net/ipv6/protocol.c
+++ b/net/ipv6/protocol.c
@@ -25,8 +25,9 @@
25#include <linux/spinlock.h> 25#include <linux/spinlock.h>
26#include <net/protocol.h> 26#include <net/protocol.h>
27 27
28#if IS_ENABLED(CONFIG_IPV6)
28const struct inet6_protocol __rcu *inet6_protos[MAX_INET_PROTOS] __read_mostly; 29const struct inet6_protocol __rcu *inet6_protos[MAX_INET_PROTOS] __read_mostly;
29const struct net_offload __rcu *inet6_offloads[MAX_INET_PROTOS] __read_mostly; 30EXPORT_SYMBOL(inet6_protos);
30 31
31int inet6_add_protocol(const struct inet6_protocol *prot, unsigned char protocol) 32int inet6_add_protocol(const struct inet6_protocol *prot, unsigned char protocol)
32{ 33{
@@ -35,13 +36,6 @@ int inet6_add_protocol(const struct inet6_protocol *prot, unsigned char protocol
35} 36}
36EXPORT_SYMBOL(inet6_add_protocol); 37EXPORT_SYMBOL(inet6_add_protocol);
37 38
38int inet6_add_offload(const struct net_offload *prot, unsigned char protocol)
39{
40 return !cmpxchg((const struct net_offload **)&inet6_offloads[protocol],
41 NULL, prot) ? 0 : -1;
42}
43EXPORT_SYMBOL(inet6_add_offload);
44
45/* 39/*
46 * Remove a protocol from the hash tables. 40 * Remove a protocol from the hash tables.
47 */ 41 */
@@ -58,6 +52,16 @@ int inet6_del_protocol(const struct inet6_protocol *prot, unsigned char protocol
58 return ret; 52 return ret;
59} 53}
60EXPORT_SYMBOL(inet6_del_protocol); 54EXPORT_SYMBOL(inet6_del_protocol);
55#endif
56
57const struct net_offload __rcu *inet6_offloads[MAX_INET_PROTOS] __read_mostly;
58
59int inet6_add_offload(const struct net_offload *prot, unsigned char protocol)
60{
61 return !cmpxchg((const struct net_offload **)&inet6_offloads[protocol],
62 NULL, prot) ? 0 : -1;
63}
64EXPORT_SYMBOL(inet6_add_offload);
61 65
62int inet6_del_offload(const struct net_offload *prot, unsigned char protocol) 66int inet6_del_offload(const struct net_offload *prot, unsigned char protocol)
63{ 67{