Message ID | 20240609082726.32742-8-Julia.Lawall@inria.fr (mailing list archive) |
---|---|
State | Deferred |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | replace call_rcu by kfree_rcu for simple kmem_cache_free callback | expand |
On 6/9/24 11:27, Julia Lawall wrote: > Since SLOB was removed, it is not necessary to use call_rcu > when the callback only performs kmem_cache_free. Use > kfree_rcu() directly. > > The changes were done using the following Coccinelle semantic patch. > This semantic patch is designed to ignore cases where the callback > function is used in another way. > [snip] > > Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr> > Reviewed-by: Paul E. McKenney <paulmck@kernel.org> > Reviewed-by: Vlastimil Babka <vbabka@suse.cz> > > --- > net/bridge/br_fdb.c | 9 +-------- > 1 file changed, 1 insertion(+), 8 deletions(-) > Thanks, Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c index c77591e63841..6d04b48f7e2c 100644 --- a/net/bridge/br_fdb.c +++ b/net/bridge/br_fdb.c @@ -73,13 +73,6 @@ static inline int has_expired(const struct net_bridge *br, time_before_eq(fdb->updated + hold_time(br), jiffies); } -static void fdb_rcu_free(struct rcu_head *head) -{ - struct net_bridge_fdb_entry *ent - = container_of(head, struct net_bridge_fdb_entry, rcu); - kmem_cache_free(br_fdb_cache, ent); -} - static int fdb_to_nud(const struct net_bridge *br, const struct net_bridge_fdb_entry *fdb) { @@ -329,7 +322,7 @@ static void fdb_delete(struct net_bridge *br, struct net_bridge_fdb_entry *f, if (test_and_clear_bit(BR_FDB_DYNAMIC_LEARNED, &f->flags)) atomic_dec(&br->fdb_n_learned); fdb_notify(br, f, RTM_DELNEIGH, swdev_notify); - call_rcu(&f->rcu, fdb_rcu_free); + kfree_rcu(f, rcu); } /* Delete a local entry if no other port had the same address.