forked from Minki/linux
neighbour: remove neigh_cleanup() method
neigh_cleanup() has not been used for seven years, and was a wrong design.
Messing with shared pointer in bond_neigh_init() without proper
memory barriers would at least trigger syzbot complains eventually.
It is time to remove this stuff.
Fixes: b63b70d877
("IPoIB: Use a private hash table for path lookup in xmit path")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
43aad8104b
commit
f394722fb0
@ -3712,18 +3712,10 @@ static int bond_neigh_init(struct neighbour *n)
|
||||
return 0;
|
||||
|
||||
parms.neigh_setup = NULL;
|
||||
parms.neigh_cleanup = NULL;
|
||||
ret = slave_ops->ndo_neigh_setup(slave->dev, &parms);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* Assign slave's neigh_cleanup to neighbour in case cleanup is called
|
||||
* after the last slave has been detached. Assumes that all slaves
|
||||
* utilize the same neigh_cleanup (true at this writing as only user
|
||||
* is ipoib).
|
||||
*/
|
||||
n->parms->neigh_cleanup = parms.neigh_cleanup;
|
||||
|
||||
if (!parms.neigh_setup)
|
||||
return 0;
|
||||
|
||||
|
@ -72,7 +72,6 @@ struct neigh_parms {
|
||||
struct net_device *dev;
|
||||
struct list_head list;
|
||||
int (*neigh_setup)(struct neighbour *);
|
||||
void (*neigh_cleanup)(struct neighbour *);
|
||||
struct neigh_table *tbl;
|
||||
|
||||
void *sysctl_table;
|
||||
|
@ -98,9 +98,6 @@ static int neigh_blackhole(struct neighbour *neigh, struct sk_buff *skb)
|
||||
|
||||
static void neigh_cleanup_and_release(struct neighbour *neigh)
|
||||
{
|
||||
if (neigh->parms->neigh_cleanup)
|
||||
neigh->parms->neigh_cleanup(neigh);
|
||||
|
||||
trace_neigh_cleanup_and_release(neigh, 0);
|
||||
__neigh_notify(neigh, RTM_DELNEIGH, 0, 0);
|
||||
call_netevent_notifiers(NETEVENT_NEIGH_UPDATE, neigh);
|
||||
|
Loading…
Reference in New Issue
Block a user