]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: hsr: remove one synchronize_rcu() from hsr_del_port()
authorEric Dumazet <edumazet@google.com>
Fri, 3 Jan 2025 10:11:48 +0000 (10:11 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Dec 2025 12:55:13 +0000 (13:55 +0100)
[ Upstream commit 4475d56145f368d065b05da3a5599d5620ca9408 ]

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>
Stable-dep-of: 30296ac76426 ("net: dsa: xrs700x: reject unsupported HSR configurations")
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/hsr/hsr_main.h
net/hsr/hsr_slave.c

index f066c9c401c605729d353e6eab5129574dd4096e..37beb40763dba5cebbbb6979073a9b9442851c96 100644 (file)
@@ -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;
index b17909ef6632ffb4818e00255a656822c76344d1..01762525c945646e1c4674adcd139ed3e44e01cf 100644 (file)
@@ -241,7 +241,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);
 }