summaryrefslogtreecommitdiffstats
path: root/net/mctp
diff options
context:
space:
mode:
authorJeremy Kerr <jk@codeconstruct.com.au>2021-09-08 12:13:10 +0800
committerDavid S. Miller <davem@davemloft.net>2021-09-08 11:29:16 +0100
commit581edcd0c8a076eba2ec9e20db50921ee80f5cbc (patch)
tree008fe6a555e92ab5c6ea9a568f8e728517a458d9 /net/mctp
parentd9ea761fdd197351890418acd462c51f241014a7 (diff)
downloadlinux-581edcd0c8a076eba2ec9e20db50921ee80f5cbc.tar.gz
linux-581edcd0c8a076eba2ec9e20db50921ee80f5cbc.tar.bz2
linux-581edcd0c8a076eba2ec9e20db50921ee80f5cbc.zip
mctp: perform route destruction under RCU read lock
The kernel test robot reports: [ 843.509974][ T345] ============================= [ 843.524220][ T345] WARNING: suspicious RCU usage [ 843.538791][ T345] 5.14.0-rc2-00606-g889b7da23abf #1 Not tainted [ 843.553617][ T345] ----------------------------- [ 843.567412][ T345] net/mctp/route.c:310 RCU-list traversed in non-reader section!! - we're missing the rcu read lock acquire around the destruction path. This change adds the acquire/release - the path is already atomic, and we're using the _rcu list iterators. Reported-by: kernel test robot <oliver.sang@intel.com> Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mctp')
-rw-r--r--net/mctp/route.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/mctp/route.c b/net/mctp/route.c
index 5265525011ad..5ca186d53cb0 100644
--- a/net/mctp/route.c
+++ b/net/mctp/route.c
@@ -1083,8 +1083,10 @@ static void __net_exit mctp_routes_net_exit(struct net *net)
{
struct mctp_route *rt;
+ rcu_read_lock();
list_for_each_entry_rcu(rt, &net->mctp.routes, list)
mctp_route_release(rt);
+ rcu_read_unlock();
}
static struct pernet_operations mctp_net_ops = {