ipv6: Allow inet6_dump_addr() to handle more than 64 addresses
[safe/jmp/linux-2.6] / net / ipv6 / udplite.c
index f6cdcb3..6ea6938 100644 (file)
  */
 #include "udp_impl.h"
 
-DEFINE_SNMP_STAT(struct udp_mib, udplite_stats_in6) __read_mostly;
-
 static int udplitev6_rcv(struct sk_buff *skb)
 {
-       return __udp6_lib_rcv(skb, udplite_hash, IPPROTO_UDPLITE);
+       return __udp6_lib_rcv(skb, &udplite_table, IPPROTO_UDPLITE);
 }
 
 static void udplitev6_err(struct sk_buff *skb,
                          struct inet6_skb_parm *opt,
-                         int type, int code, int offset, __be32 info)
+                         u8 type, u8 code, int offset, __be32 info)
 {
-       __udp6_lib_err(skb, opt, type, code, offset, info, udplite_hash);
+       __udp6_lib_err(skb, opt, type, code, offset, info, &udplite_table);
 }
 
-static struct inet6_protocol udplitev6_protocol = {
+static const struct inet6_protocol udplitev6_protocol = {
        .handler        =       udplitev6_rcv,
        .err_handler    =       udplitev6_err,
        .flags          =       INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
@@ -51,7 +49,8 @@ struct proto udplitev6_prot = {
        .unhash            = udp_lib_unhash,
        .get_port          = udp_v6_get_port,
        .obj_size          = sizeof(struct udp6_sock),
-       .h.udp_hash        = udplite_hash,
+       .slab_flags        = SLAB_DESTROY_BY_RCU,
+       .h.udp_table       = &udplite_table,
 #ifdef CONFIG_COMPAT
        .compat_setsockopt = compat_udpv6_setsockopt,
        .compat_getsockopt = compat_udpv6_getsockopt,
@@ -63,7 +62,6 @@ static struct inet_protosw udplite6_protosw = {
        .protocol       = IPPROTO_UDPLITE,
        .prot           = &udplitev6_prot,
        .ops            = &inet6_dgram_ops,
-       .capability     = -1,
        .no_check       = 0,
        .flags          = INET_PROTOSW_PERMANENT,
 };
@@ -97,7 +95,7 @@ void udplitev6_exit(void)
 static struct udp_seq_afinfo udplite6_seq_afinfo = {
        .name           = "udplite6",
        .family         = AF_INET6,
-       .hashtable      = udplite_hash,
+       .udp_table      = &udplite_table,
        .seq_fops       = {
                .owner  =       THIS_MODULE,
        },