mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-14 16:23:51 +08:00
Revert "net: Remove unused neighbour layer ops."
This reverts commit 5c3ddec73d
.
S390 qeth driver actually still uses the setup ops.
Reported-by: Frank Blaschka <blaschka@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
72be84f1c2
commit
447f219190
@ -974,6 +974,7 @@ struct net_device_ops {
|
|||||||
int (*ndo_set_features)(struct net_device *dev,
|
int (*ndo_set_features)(struct net_device *dev,
|
||||||
netdev_features_t features);
|
netdev_features_t features);
|
||||||
int (*ndo_neigh_construct)(struct neighbour *n);
|
int (*ndo_neigh_construct)(struct neighbour *n);
|
||||||
|
void (*ndo_neigh_destroy)(struct neighbour *n);
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -43,6 +43,7 @@ struct neigh_parms {
|
|||||||
#endif
|
#endif
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
struct neigh_parms *next;
|
struct neigh_parms *next;
|
||||||
|
int (*neigh_setup)(struct neighbour *);
|
||||||
void (*neigh_cleanup)(struct neighbour *);
|
void (*neigh_cleanup)(struct neighbour *);
|
||||||
struct neigh_table *tbl;
|
struct neigh_table *tbl;
|
||||||
|
|
||||||
|
@ -497,6 +497,13 @@ struct neighbour *neigh_create(struct neigh_table *tbl, const void *pkey,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Device specific setup. */
|
||||||
|
if (n->parms->neigh_setup &&
|
||||||
|
(error = n->parms->neigh_setup(n)) < 0) {
|
||||||
|
rc = ERR_PTR(error);
|
||||||
|
goto out_neigh_release;
|
||||||
|
}
|
||||||
|
|
||||||
n->confirmed = jiffies - (n->parms->base_reachable_time << 1);
|
n->confirmed = jiffies - (n->parms->base_reachable_time << 1);
|
||||||
|
|
||||||
write_lock_bh(&tbl->lock);
|
write_lock_bh(&tbl->lock);
|
||||||
@ -710,6 +717,9 @@ void neigh_destroy(struct neighbour *neigh)
|
|||||||
skb_queue_purge(&neigh->arp_queue);
|
skb_queue_purge(&neigh->arp_queue);
|
||||||
neigh->arp_queue_len_bytes = 0;
|
neigh->arp_queue_len_bytes = 0;
|
||||||
|
|
||||||
|
if (dev->netdev_ops->ndo_neigh_destroy)
|
||||||
|
dev->netdev_ops->ndo_neigh_destroy(neigh);
|
||||||
|
|
||||||
dev_put(dev);
|
dev_put(dev);
|
||||||
neigh_parms_put(neigh->parms);
|
neigh_parms_put(neigh->parms);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user