Message ID | 20250207135841.1948589-2-edumazet@google.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 48145a57d4bbe3496e8e4880b23ea6b511e6e519 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: second round to use dev_net_rcu() | expand |
On 2/7/25 6:58 AM, Eric Dumazet wrote: > ndisc_send_redirect() is called under RCU protection, not RTNL. > > It must use dev_get_by_index_rcu() instead of __dev_get_by_index() > > Fixes: 2f17becfbea5 ("vrf: check the original netdevice for generating redirect") > Signed-off-by: Eric Dumazet <edumazet@google.com> > Cc: Stephen Suryaputra <ssuryaextr@gmail.com> > --- > net/ipv6/ndisc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > Reviewed-by: David Ahern <dsahern@kernel.org>
From: Eric Dumazet <edumazet@google.com> Date: Fri, 7 Feb 2025 13:58:33 +0000 > ndisc_send_redirect() is called under RCU protection, not RTNL. > > It must use dev_get_by_index_rcu() instead of __dev_get_by_index() > > Fixes: 2f17becfbea5 ("vrf: check the original netdevice for generating redirect") > Signed-off-by: Eric Dumazet <edumazet@google.com> Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index d044c67019de6da1eb29dee875cf8cda30210ceb..264b10a94757705d4ce61e1371eb4d9a699b9016 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -1694,7 +1694,7 @@ void ndisc_send_redirect(struct sk_buff *skb, const struct in6_addr *target) bool ret; if (netif_is_l3_master(skb->dev)) { - dev = __dev_get_by_index(dev_net(skb->dev), IPCB(skb)->iif); + dev = dev_get_by_index_rcu(dev_net(skb->dev), IPCB(skb)->iif); if (!dev) return; }
ndisc_send_redirect() is called under RCU protection, not RTNL. It must use dev_get_by_index_rcu() instead of __dev_get_by_index() Fixes: 2f17becfbea5 ("vrf: check the original netdevice for generating redirect") Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Stephen Suryaputra <ssuryaextr@gmail.com> --- net/ipv6/ndisc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)