diff options
| author | Eric Dumazet <edumazet@google.com> | 2025-02-05 18:51:09 +0300 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2025-02-07 03:14:14 +0300 |
| commit | 482ad2a4ace2740ca0ff1cbc8f3c7f862f3ab507 (patch) | |
| tree | 0b4e6f90221e6f42b978ca341b8ca3cc89b3ae1e /include/linux | |
| parent | 3cf0a98fea776adb09087e521fe150c295a4b031 (diff) | |
| download | linux-482ad2a4ace2740ca0ff1cbc8f3c7f862f3ab507.tar.xz | |
net: add dev_net_rcu() helper
dev->nd_net can change, readers should either
use rcu_read_lock() or RTNL.
We currently use a generic helper, dev_net() with
no debugging support. We probably have many hidden bugs.
Add dev_net_rcu() helper for callers using rcu_read_lock()
protection.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://patch.msgid.link/20250205155120.1676781-2-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/netdevice.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 03bb584c62cf..c0a86afb85da 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -2664,6 +2664,12 @@ struct net *dev_net(const struct net_device *dev) } static inline +struct net *dev_net_rcu(const struct net_device *dev) +{ + return read_pnet_rcu(&dev->nd_net); +} + +static inline void dev_net_set(struct net_device *dev, struct net *net) { write_pnet(&dev->nd_net, net); |
