projects
/
linux-2.6-microblaze.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
6cd663f
)
netdev-genl: Hold rcu_read_lock in napi_set
author
Joe Damato
<jdamato@fastly.com>
Thu, 14 Nov 2024 17:55:59 +0000
(17:55 +0000)
committer
Jakub Kicinski
<kuba@kernel.org>
Fri, 15 Nov 2024 22:21:00 +0000
(14:21 -0800)
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>
net/core/netdev-genl.c
patch
|
blob
|
history
diff --git
a/net/core/netdev-genl.c
b/net/core/netdev-genl.c
index
765ce7c
..
fa119ff
100644
(file)
--- 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;