]> git.ipfire.org Git - thirdparty/linux.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)
committerJakub Kicinski <kuba@kernel.org>
Tue, 7 Jan 2025 00:09:13 +0000 (16:09 -0800)
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>
net/hsr/hsr_main.h
net/hsr/hsr_slave.c

index fcfeb79bb04018f3a84be3e24f29c6b92f2d8be1..7d7551e6f0b02ad965561eb45885a949dcf1756c 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 464f683e016dbba659ac0e4f2e02306bfd016ad9..006d6ef97e53f4077eb16f08077ee366d8cb4bbd 100644 (file)
@@ -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);
 }