diff options
author | Mike Turquette <mturquette@linaro.org> | 2014-02-24 23:07:53 -0800 |
---|---|---|
committer | Mike Turquette <mturquette@linaro.org> | 2014-02-24 23:07:53 -0800 |
commit | ad077ceb8a90c7ef1fc15758ed3811448181ee80 (patch) | |
tree | dc090e24bb82c41c3785e539b9e60df6c48abfaf /net/sctp/sysctl.c | |
parent | c05ab9a0cc8e2b958bb2db2f8f1d200e568a75d4 (diff) | |
parent | 10b7cdc0084c27a312e59e80420c6aac70c64753 (diff) |
Merge branch 'clk-fixes' into clk-next
Diffstat (limited to 'net/sctp/sysctl.c')
-rw-r--r-- | net/sctp/sysctl.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c index 7135e617ab0f..35c8923b5554 100644 --- a/net/sctp/sysctl.c +++ b/net/sctp/sysctl.c @@ -151,6 +151,7 @@ static struct ctl_table sctp_net_table[] = { }, { .procname = "cookie_hmac_alg", + .data = &init_net.sctp.sctp_hmac_alg, .maxlen = 8, .mode = 0644, .proc_handler = proc_sctp_do_hmac_alg, @@ -401,15 +402,18 @@ static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write, int sctp_sysctl_net_register(struct net *net) { - struct ctl_table *table; - int i; + struct ctl_table *table = sctp_net_table; + + if (!net_eq(net, &init_net)) { + int i; - table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); - if (!table) - return -ENOMEM; + table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); + if (!table) + return -ENOMEM; - for (i = 0; table[i].data; i++) - table[i].data += (char *)(&net->sctp) - (char *)&init_net.sctp; + for (i = 0; table[i].data; i++) + table[i].data += (char *)(&net->sctp) - (char *)&init_net.sctp; + } net->sctp.sysctl_header = register_net_sysctl(net, "net/sctp", table); return 0; |