diff options
Diffstat (limited to 'net/ipv6/addrconf.c')
-rw-r--r-- | net/ipv6/addrconf.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index b41c5d8b2789..a5e8d207a51b 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c | |||
@@ -3969,10 +3969,9 @@ static void addrconf_sysctl_register(struct inet6_dev *idev, struct ipv6_devconf | |||
3969 | struct addrconf_sysctl_table *t; | 3969 | struct addrconf_sysctl_table *t; |
3970 | char *dev_name = NULL; | 3970 | char *dev_name = NULL; |
3971 | 3971 | ||
3972 | t = kmalloc(sizeof(*t), GFP_KERNEL); | 3972 | t = kmemdup(&addrconf_sysctl, sizeof(*t), GFP_KERNEL); |
3973 | if (t == NULL) | 3973 | if (t == NULL) |
3974 | return; | 3974 | return; |
3975 | memcpy(t, &addrconf_sysctl, sizeof(*t)); | ||
3976 | for (i=0; t->addrconf_vars[i].data; i++) { | 3975 | for (i=0; t->addrconf_vars[i].data; i++) { |
3977 | t->addrconf_vars[i].data += (char*)p - (char*)&ipv6_devconf; | 3976 | t->addrconf_vars[i].data += (char*)p - (char*)&ipv6_devconf; |
3978 | t->addrconf_vars[i].de = NULL; | 3977 | t->addrconf_vars[i].de = NULL; |