[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CANn89iLt6E-cSE3QWpg5GPjtNSm4A81EzAFh8YuG8Wkq+UqmeA@mail.gmail.com>
Date: Mon, 3 Feb 2025 11:12:39 +0100
From: Eric Dumazet <edumazet@...gle.com>
To: Jakub Kicinski <kuba@...nel.org>
Cc: "David S . Miller" <davem@...emloft.net>, Paolo Abeni <pabeni@...hat.com>, netdev@...r.kernel.org,
Kuniyuki Iwashima <kuniyu@...zon.com>, Simon Horman <horms@...nel.org>, eric.dumazet@...il.com
Subject: Re: [PATCH net 00/16] net: first round to use dev_net_rcu()
On Sun, Feb 2, 2025 at 3:18 AM Jakub Kicinski <kuba@...nel.org> wrote:
>
> On Fri, 31 Jan 2025 17:13:18 +0000 Eric Dumazet wrote:
> > ipv4: use RCU protection in inet_select_addr()
>
> patchwork thinks it's an incomplete series due to lack of this patch
> on the list. I'm afraid a repost will be needed :(
Interesting, I wonder what happened...
I will send a v2, here what it looks like:
commit 52a1dc65d01230876fbacc7f8fe63ee7a758603f (HEAD)
Author: Eric Dumazet <edumazet@...gle.com>
Date: Fri Jan 31 16:47:50 2025 +0000
ipv4: use RCU protection in inet_select_addr()
inet_select_addr() must use RCU protection to make
sure the net structure it reads does not disappear.
Fixes: c4544c724322 ("[NETNS]: Process inet_select_addr inside a
namespace.")
Signed-off-by: Eric Dumazet <edumazet@...gle.com>
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index c8b3cf5fba4c02941b919687a6a657cf68f5f99a..55b8151759bc9f76ebdbfae27544d6ee666a4809
100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -1371,10 +1371,11 @@ __be32 inet_select_addr(const struct
net_device *dev, __be32 dst, int scope)
__be32 addr = 0;
unsigned char localnet_scope = RT_SCOPE_HOST;
struct in_device *in_dev;
- struct net *net = dev_net(dev);
+ struct net *net;
int master_idx;
rcu_read_lock();
+ net = dev_net_rcu(dev);
in_dev = __in_dev_get_rcu(dev);
if (!in_dev)
goto no_in_dev;
Powered by blists - more mailing lists