|
@@ -1145,16 +1145,23 @@ struct dn_dev *dn_dev_create(struct net_device *dev, int *err)
|
|
init_timer(&dn_db->timer);
|
|
init_timer(&dn_db->timer);
|
|
|
|
|
|
dn_db->uptime = jiffies;
|
|
dn_db->uptime = jiffies;
|
|
|
|
+
|
|
|
|
+ dn_db->neigh_parms = neigh_parms_alloc(dev, &dn_neigh_table);
|
|
|
|
+ if (!dn_db->neigh_parms) {
|
|
|
|
+ dev->dn_ptr = NULL;
|
|
|
|
+ kfree(dn_db);
|
|
|
|
+ return NULL;
|
|
|
|
+ }
|
|
|
|
+
|
|
if (dn_db->parms.up) {
|
|
if (dn_db->parms.up) {
|
|
if (dn_db->parms.up(dev) < 0) {
|
|
if (dn_db->parms.up(dev) < 0) {
|
|
|
|
+ neigh_parms_release(&dn_neigh_table, dn_db->neigh_parms);
|
|
dev->dn_ptr = NULL;
|
|
dev->dn_ptr = NULL;
|
|
kfree(dn_db);
|
|
kfree(dn_db);
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- dn_db->neigh_parms = neigh_parms_alloc(dev, &dn_neigh_table);
|
|
|
|
-
|
|
|
|
dn_dev_sysctl_register(dev, &dn_db->parms);
|
|
dn_dev_sysctl_register(dev, &dn_db->parms);
|
|
|
|
|
|
dn_dev_set_timer(dev);
|
|
dn_dev_set_timer(dev);
|