|
@@ -255,12 +255,10 @@ static void dn_dev_sysctl_register(struct net_device *dev, struct dn_dev_parms *
|
|
|
struct dn_dev_sysctl_table *t;
|
|
|
int i;
|
|
|
|
|
|
- t = kmalloc(sizeof(*t), GFP_KERNEL);
|
|
|
+ t = kmemdup(&dn_dev_sysctl, sizeof(*t), GFP_KERNEL);
|
|
|
if (t == NULL)
|
|
|
return;
|
|
|
|
|
|
- memcpy(t, &dn_dev_sysctl, sizeof(*t));
|
|
|
-
|
|
|
for(i = 0; i < ARRAY_SIZE(t->dn_dev_vars) - 1; i++) {
|
|
|
long offset = (long)t->dn_dev_vars[i].data;
|
|
|
t->dn_dev_vars[i].data = ((char *)parms) + offset;
|