summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Damato <jdamato@fastly.com>2024-11-14 20:55:59 +0300
committerJakub Kicinski <kuba@kernel.org>2024-11-16 01:21:00 +0300
commited7231f56cd7f795ff3a831e32946a96661bfee9 (patch)
tree6957ea888ed35ec7ede3e4f716633c74966860ab
parent6cd663f03fa6993588af641af7a5a508cf1de4a9 (diff)
downloadlinux-ed7231f56cd7f795ff3a831e32946a96661bfee9.tar.xz
netdev-genl: Hold rcu_read_lock in napi_set
Hold rcu_read_lock during netdev_nl_napi_set_doit, which calls napi_by_id and requires rcu_read_lock to be held. Closes: https://lore.kernel.org/netdev/719083c2-e277-447b-b6ea-ca3acb293a03@redhat.com/ Fixes: 1287c1ae0fc2 ("netdev-genl: Support setting per-NAPI config values") Signed-off-by: Joe Damato <jdamato@fastly.com> Link: https://patch.msgid.link/20241114175600.18882-1-jdamato@fastly.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--net/core/netdev-genl.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/core/netdev-genl.c b/net/core/netdev-genl.c
index 765ce7c9d73b..fa119ff68698 100644
--- a/net/core/netdev-genl.c
+++ b/net/core/netdev-genl.c
@@ -346,6 +346,7 @@ int netdev_nl_napi_set_doit(struct sk_buff *skb, struct genl_info *info)
napi_id = nla_get_u32(info->attrs[NETDEV_A_NAPI_ID]);
rtnl_lock();
+ rcu_read_lock();
napi = napi_by_id(napi_id);
if (napi) {
@@ -355,6 +356,7 @@ int netdev_nl_napi_set_doit(struct sk_buff *skb, struct genl_info *info)
err = -ENOENT;
}
+ rcu_read_unlock();
rtnl_unlock();
return err;