diff options
Diffstat (limited to 'net/sctp/sysctl.c')
| -rw-r--r-- | net/sctp/sysctl.c | 12 | 
1 files changed, 4 insertions, 8 deletions
diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c index f65d6f92afcb..61c6f3027e7f 100644 --- a/net/sctp/sysctl.c +++ b/net/sctp/sysctl.c @@ -80,8 +80,6 @@ static struct ctl_table sctp_table[] = {  		.mode		= 0644,  		.proc_handler	= proc_dointvec,  	}, - -	{ /* sentinel */ }  };  /* The following index defines are used in sctp_sysctl_net_register(). @@ -384,8 +382,6 @@ static struct ctl_table sctp_net_table[] = {  		.extra1		= SYSCTL_ZERO,  		.extra2		= &pf_expose_max,  	}, - -	{ /* sentinel */ }  };  static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write, @@ -597,6 +593,7 @@ static int proc_sctp_do_probe_interval(struct ctl_table *ctl, int write,  int sctp_sysctl_net_register(struct net *net)  { +	size_t table_size = ARRAY_SIZE(sctp_net_table);  	struct ctl_table *table;  	int i; @@ -604,7 +601,7 @@ int sctp_sysctl_net_register(struct net *net)  	if (!table)  		return -ENOMEM; -	for (i = 0; table[i].data; i++) +	for (i = 0; i < table_size; i++)  		table[i].data += (char *)(&net->sctp) - (char *)&init_net.sctp;  	table[SCTP_RTO_MIN_IDX].extra2 = &net->sctp.rto_max; @@ -613,8 +610,7 @@ int sctp_sysctl_net_register(struct net *net)  	table[SCTP_PS_RETRANS_IDX].extra1 = &net->sctp.pf_retrans;  	net->sctp.sysctl_header = register_net_sysctl_sz(net, "net/sctp", -							 table, -							 ARRAY_SIZE(sctp_net_table)); +							 table, table_size);  	if (net->sctp.sysctl_header == NULL) {  		kfree(table);  		return -ENOMEM; @@ -624,7 +620,7 @@ int sctp_sysctl_net_register(struct net *net)  void sctp_sysctl_net_unregister(struct net *net)  { -	struct ctl_table *table; +	const struct ctl_table *table;  	table = net->sctp.sysctl_header->ctl_table_arg;  	unregister_net_sysctl_table(net->sctp.sysctl_header);  |