mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 18:43:33 +02:00
neighbour: Use RCU list helpers for neigh_parms.list writers.
We will convert RTM_GETNEIGHTBL to RCU soon, where we traverse tbl->parms_list under RCU in neightbl_dump_info(). Let's use RCU list helper for neigh_parms in neigh_parms_alloc() and neigh_parms_release(). neigh_table_init() uses the plain list_add() for the default neigh_parm that is embedded in the table and not yet published. Note that neigh_parms_release() already uses call_rcu() to free neigh_parms. Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com> Reviewed-by: Eric Dumazet <edumazet@google.com> Link: https://patch.msgid.link/20251022054004.2514876-2-kuniyu@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
f0a24b2547
commit
06d6322280
|
|
@ -1764,7 +1764,7 @@ struct neigh_parms *neigh_parms_alloc(struct net_device *dev,
|
|||
}
|
||||
|
||||
write_lock_bh(&tbl->lock);
|
||||
list_add(&p->list, &tbl->parms.list);
|
||||
list_add_rcu(&p->list, &tbl->parms.list);
|
||||
write_unlock_bh(&tbl->lock);
|
||||
|
||||
neigh_parms_data_state_cleanall(p);
|
||||
|
|
@ -1786,7 +1786,7 @@ void neigh_parms_release(struct neigh_table *tbl, struct neigh_parms *parms)
|
|||
if (!parms || parms == &tbl->parms)
|
||||
return;
|
||||
write_lock_bh(&tbl->lock);
|
||||
list_del(&parms->list);
|
||||
list_del_rcu(&parms->list);
|
||||
parms->dead = 1;
|
||||
write_unlock_bh(&tbl->lock);
|
||||
netdev_put(parms->dev, &parms->dev_tracker);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user