Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

netfilter: nf_conntrack: prepare l4proto->init_net cleanup

l4proto->init contain quite redundant code. We can simplify this
by adding a new parameter l3proto.

This patch prepares that code simplification.

Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>

authored by

Gao feng and committed by
Pablo Neira Ayuso
f1caad27 fa0f61f0

+16 -15
+1 -1
include/net/netfilter/nf_conntrack_l4proto.h
··· 97 97 #endif 98 98 int *net_id; 99 99 /* Init l4proto pernet data */ 100 - int (*init_net)(struct net *net); 100 + int (*init_net)(struct net *net, u_int16_t proto); 101 101 102 102 /* Protocol name */ 103 103 const char *name;
+1 -1
net/ipv4/netfilter/nf_conntrack_proto_icmp.c
··· 337 337 #endif /* CONFIG_NF_CONNTRACK_PROC_COMPAT */ 338 338 #endif /* CONFIG_SYSCTL */ 339 339 340 - static int icmp_init_net(struct net *net) 340 + static int icmp_init_net(struct net *net, u_int16_t proto) 341 341 { 342 342 struct nf_icmp_net *in = icmp_pernet(net); 343 343 struct nf_proto_net *pn = (struct nf_proto_net *)in;
+1 -1
net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c
··· 333 333 }; 334 334 #endif /* CONFIG_SYSCTL */ 335 335 336 - static int icmpv6_init_net(struct net *net) 336 + static int icmpv6_init_net(struct net *net, u_int16_t proto) 337 337 { 338 338 struct nf_icmp_net *in = icmpv6_pernet(net); 339 339 struct nf_proto_net *pn = (struct nf_proto_net *)in;
+3 -2
net/netfilter/nf_conntrack_proto.c
··· 461 461 int ret = 0; 462 462 463 463 if (l4proto->init_net) { 464 - ret = l4proto->init_net(net); 464 + ret = l4proto->init_net(net, l4proto->l3proto); 465 465 if (ret < 0) 466 466 return ret; 467 467 } ··· 515 515 { 516 516 unsigned int i; 517 517 int err; 518 - err = nf_conntrack_l4proto_generic.init_net(net); 518 + err = nf_conntrack_l4proto_generic.init_net(net, 519 + nf_conntrack_l4proto_generic.l3proto); 519 520 if (err < 0) 520 521 return err; 521 522 err = nf_ct_l4proto_register_sysctl(net,
+1 -1
net/netfilter/nf_conntrack_proto_dccp.c
··· 815 815 }; 816 816 #endif /* CONFIG_SYSCTL */ 817 817 818 - static int dccp_init_net(struct net *net) 818 + static int dccp_init_net(struct net *net, u_int16_t proto) 819 819 { 820 820 struct dccp_net *dn = dccp_pernet(net); 821 821 struct nf_proto_net *pn = (struct nf_proto_net *)dn;
+1 -1
net/netfilter/nf_conntrack_proto_generic.c
··· 135 135 #endif /* CONFIG_NF_CONNTRACK_PROC_COMPAT */ 136 136 #endif /* CONFIG_SYSCTL */ 137 137 138 - static int generic_init_net(struct net *net) 138 + static int generic_init_net(struct net *net, u_int16_t proto) 139 139 { 140 140 struct nf_generic_net *gn = generic_pernet(net); 141 141 struct nf_proto_net *pn = (struct nf_proto_net *)gn;
+1 -1
net/netfilter/nf_conntrack_proto_gre.c
··· 348 348 }; 349 349 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */ 350 350 351 - static int gre_init_net(struct net *net) 351 + static int gre_init_net(struct net *net, u_int16_t proto) 352 352 { 353 353 struct netns_proto_gre *net_gre = gre_pernet(net); 354 354 int i;
+2 -2
net/netfilter/nf_conntrack_proto_sctp.c
··· 767 767 return 0; 768 768 } 769 769 770 - static int sctpv4_init_net(struct net *net) 770 + static int sctpv4_init_net(struct net *net, u_int16_t proto) 771 771 { 772 772 int ret; 773 773 struct sctp_net *sn = sctp_pernet(net); ··· 793 793 return ret; 794 794 } 795 795 796 - static int sctpv6_init_net(struct net *net) 796 + static int sctpv6_init_net(struct net *net, u_int16_t proto) 797 797 { 798 798 struct sctp_net *sn = sctp_pernet(net); 799 799 struct nf_proto_net *pn = (struct nf_proto_net *)sn;
+2 -2
net/netfilter/nf_conntrack_proto_tcp.c
··· 1593 1593 return 0; 1594 1594 } 1595 1595 1596 - static int tcpv4_init_net(struct net *net) 1596 + static int tcpv4_init_net(struct net *net, u_int16_t proto) 1597 1597 { 1598 1598 int i; 1599 1599 int ret = 0; ··· 1631 1631 return ret; 1632 1632 } 1633 1633 1634 - static int tcpv6_init_net(struct net *net) 1634 + static int tcpv6_init_net(struct net *net, u_int16_t proto) 1635 1635 { 1636 1636 int i; 1637 1637 struct nf_tcp_net *tn = tcp_pernet(net);
+2 -2
net/netfilter/nf_conntrack_proto_udp.c
··· 283 283 } 284 284 } 285 285 286 - static int udpv4_init_net(struct net *net) 286 + static int udpv4_init_net(struct net *net, u_int16_t proto) 287 287 { 288 288 int ret; 289 289 struct nf_udp_net *un = udp_pernet(net); ··· 307 307 return ret; 308 308 } 309 309 310 - static int udpv6_init_net(struct net *net) 310 + static int udpv6_init_net(struct net *net, u_int16_t proto) 311 311 { 312 312 struct nf_udp_net *un = udp_pernet(net); 313 313 struct nf_proto_net *pn = (struct nf_proto_net *)un;
+1 -1
net/netfilter/nf_conntrack_proto_udplite.c
··· 234 234 }; 235 235 #endif /* CONFIG_SYSCTL */ 236 236 237 - static int udplite_init_net(struct net *net) 237 + static int udplite_init_net(struct net *net, u_int16_t proto) 238 238 { 239 239 int i; 240 240 struct udplite_net *un = udplite_pernet(net);