diff options
Diffstat (limited to 'net/ipv4/udplite.c')
-rw-r--r-- | net/ipv4/udplite.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/net/ipv4/udplite.c b/net/ipv4/udplite.c index 3c807964da96..d8ea8e5f5ea3 100644 --- a/net/ipv4/udplite.c +++ b/net/ipv4/udplite.c | |||
@@ -12,16 +12,17 @@ | |||
12 | */ | 12 | */ |
13 | #include "udp_impl.h" | 13 | #include "udp_impl.h" |
14 | 14 | ||
15 | struct hlist_head udplite_hash[UDP_HTABLE_SIZE]; | 15 | struct udp_table udplite_table; |
16 | EXPORT_SYMBOL(udplite_table); | ||
16 | 17 | ||
17 | static int udplite_rcv(struct sk_buff *skb) | 18 | static int udplite_rcv(struct sk_buff *skb) |
18 | { | 19 | { |
19 | return __udp4_lib_rcv(skb, udplite_hash, IPPROTO_UDPLITE); | 20 | return __udp4_lib_rcv(skb, &udplite_table, IPPROTO_UDPLITE); |
20 | } | 21 | } |
21 | 22 | ||
22 | static void udplite_err(struct sk_buff *skb, u32 info) | 23 | static void udplite_err(struct sk_buff *skb, u32 info) |
23 | { | 24 | { |
24 | __udp4_lib_err(skb, info, udplite_hash); | 25 | __udp4_lib_err(skb, info, &udplite_table); |
25 | } | 26 | } |
26 | 27 | ||
27 | static struct net_protocol udplite_protocol = { | 28 | static struct net_protocol udplite_protocol = { |
@@ -50,7 +51,7 @@ struct proto udplite_prot = { | |||
50 | .unhash = udp_lib_unhash, | 51 | .unhash = udp_lib_unhash, |
51 | .get_port = udp_v4_get_port, | 52 | .get_port = udp_v4_get_port, |
52 | .obj_size = sizeof(struct udp_sock), | 53 | .obj_size = sizeof(struct udp_sock), |
53 | .h.udp_hash = udplite_hash, | 54 | .h.udp_table = &udplite_table, |
54 | #ifdef CONFIG_COMPAT | 55 | #ifdef CONFIG_COMPAT |
55 | .compat_setsockopt = compat_udp_setsockopt, | 56 | .compat_setsockopt = compat_udp_setsockopt, |
56 | .compat_getsockopt = compat_udp_getsockopt, | 57 | .compat_getsockopt = compat_udp_getsockopt, |
@@ -71,7 +72,7 @@ static struct inet_protosw udplite4_protosw = { | |||
71 | static struct udp_seq_afinfo udplite4_seq_afinfo = { | 72 | static struct udp_seq_afinfo udplite4_seq_afinfo = { |
72 | .name = "udplite", | 73 | .name = "udplite", |
73 | .family = AF_INET, | 74 | .family = AF_INET, |
74 | .hashtable = udplite_hash, | 75 | .udp_table = &udplite_table, |
75 | .seq_fops = { | 76 | .seq_fops = { |
76 | .owner = THIS_MODULE, | 77 | .owner = THIS_MODULE, |
77 | }, | 78 | }, |
@@ -108,6 +109,7 @@ static inline int udplite4_proc_init(void) | |||
108 | 109 | ||
109 | void __init udplite4_register(void) | 110 | void __init udplite4_register(void) |
110 | { | 111 | { |
112 | udp_table_init(&udplite_table); | ||
111 | if (proto_register(&udplite_prot, 1)) | 113 | if (proto_register(&udplite_prot, 1)) |
112 | goto out_register_err; | 114 | goto out_register_err; |
113 | 115 | ||
@@ -126,5 +128,4 @@ out_register_err: | |||
126 | printk(KERN_CRIT "%s: Cannot add UDP-Lite protocol.\n", __func__); | 128 | printk(KERN_CRIT "%s: Cannot add UDP-Lite protocol.\n", __func__); |
127 | } | 129 | } |
128 | 130 | ||
129 | EXPORT_SYMBOL(udplite_hash); | ||
130 | EXPORT_SYMBOL(udplite_prot); | 131 | EXPORT_SYMBOL(udplite_prot); |