diff options
author | Eric Dumazet <edumazet@google.com> | 2025-01-03 10:11:48 +0000 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2025-01-06 16:09:13 -0800 |
commit | 4475d56145f368d065b05da3a5599d5620ca9408 (patch) | |
tree | a95b665121047dfb9d121d325622a0c39994a8d7 | |
parent | 95fc45d1dea8e1253f8ec58abc5befb71553d666 (diff) |
net: hsr: remove one synchronize_rcu() from hsr_del_port()
Use kfree_rcu() instead of synchronize_rcu()+kfree().
This might allow syzbot to fuzz HSR a bit faster...
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250103101148.3594545-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r-- | net/hsr/hsr_main.h | 1 | ||||
-rw-r--r-- | net/hsr/hsr_slave.c | 4 |
2 files changed, 2 insertions, 3 deletions
diff --git a/net/hsr/hsr_main.h b/net/hsr/hsr_main.h index fcfeb79bb040..7d7551e6f0b0 100644 --- a/net/hsr/hsr_main.h +++ b/net/hsr/hsr_main.h @@ -163,6 +163,7 @@ struct hsr_port { struct net_device *dev; struct hsr_priv *hsr; enum hsr_port_type type; + struct rcu_head rcu; }; struct hsr_frame_info; diff --git a/net/hsr/hsr_slave.c b/net/hsr/hsr_slave.c index 464f683e016d..006d6ef97e53 100644 --- a/net/hsr/hsr_slave.c +++ b/net/hsr/hsr_slave.c @@ -235,7 +235,5 @@ void hsr_del_port(struct hsr_port *port) netdev_upper_dev_unlink(port->dev, master->dev); } - synchronize_rcu(); - - kfree(port); + kfree_rcu(port, rcu); } |