netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 net 00/16] net: first round to use dev_net_rcu()
@ 2025-02-04 13:23 Eric Dumazet
  2025-02-04 13:23 ` [PATCH v3 net 01/16] net: add dev_net_rcu() helper Eric Dumazet
                   ` (15 more replies)
  0 siblings, 16 replies; 26+ messages in thread
From: Eric Dumazet @ 2025-02-04 13:23 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski, Paolo Abeni
  Cc: netdev, Kuniyuki Iwashima, Simon Horman, eric.dumazet,
	Eric Dumazet

dev_net(dev) should either be protected by RTNL or RCU.

There is no LOCKDEP support yet for this helper.

Adding it would trigger too many splats.

Instead, add dev_net_rcu() and start to use it
to either fix bugs or document points that were safely
using dev_net() in rcu_read_lock() sections.

v3: Rework patches 9 and 10 after Jakub feedback.
    Link: https://lore.kernel.org/netdev/20250203153633.46ce0337@kernel.org/
    Added some missing Fixes tags.

v2: Resend (one patch missed v1 train), plus minor fixes.

Eric Dumazet (16):
  net: add dev_net_rcu() helper
  ipv4: add RCU protection to ip4_dst_hoplimit()
  ipv4: use RCU protection in ip_dst_mtu_maybe_forward()
  ipv4: use RCU protection in ipv4_default_advmss()
  ipv4: use RCU protection in rt_is_expired()
  tcp: convert to dev_net_rcu()
  net: gro: convert four dev_net() calls
  udp: convert to dev_net_rcu()
  ipv4: icmp: convert to dev_net_rcu()
  ipv6: icmp: convert to dev_net_rcu()
  ipv6: input: convert to dev_net_rcu()
  ipv6: output: convert to dev_net_rcu()
  ipv6: use RCU protection in ip6_default_advmss()
  net: filter: convert to dev_net_rcu()
  flow_dissector: use rcu protection to fetch dev_net()
  ipv4: use RCU protection in inet_select_addr()

 include/linux/netdevice.h      |  6 +++++
 include/net/inet6_hashtables.h |  2 +-
 include/net/inet_hashtables.h  |  2 +-
 include/net/ip.h               | 13 ++++++++---
 include/net/net_namespace.h    |  2 +-
 include/net/route.h            |  9 ++++++--
 net/core/filter.c              | 40 ++++++++++++++++----------------
 net/core/flow_dissector.c      | 21 +++++++++--------
 net/ipv4/devinet.c             |  3 ++-
 net/ipv4/icmp.c                | 31 +++++++++++++------------
 net/ipv4/route.c               | 19 +++++++++++----
 net/ipv4/tcp_ipv4.c            |  8 +++----
 net/ipv4/tcp_metrics.c         |  6 ++---
 net/ipv4/tcp_offload.c         |  2 +-
 net/ipv4/udp.c                 | 19 +++++++--------
 net/ipv4/udp_offload.c         |  2 +-
 net/ipv6/icmp.c                | 42 +++++++++++++++++++---------------
 net/ipv6/ip6_input.c           | 12 +++++-----
 net/ipv6/ip6_output.c          |  4 ++--
 net/ipv6/output_core.c         |  2 +-
 net/ipv6/route.c               |  7 +++++-
 net/ipv6/tcp_ipv6.c            | 10 ++++----
 net/ipv6/tcpv6_offload.c       |  2 +-
 net/ipv6/udp.c                 | 18 +++++++--------
 net/ipv6/udp_offload.c         |  2 +-
 25 files changed, 164 insertions(+), 120 deletions(-)

-- 
2.48.1.362.g079036d154-goog


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2025-02-05  8:05 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-04 13:23 [PATCH v3 net 00/16] net: first round to use dev_net_rcu() Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 01/16] net: add dev_net_rcu() helper Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 02/16] ipv4: add RCU protection to ip4_dst_hoplimit() Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 03/16] ipv4: use RCU protection in ip_dst_mtu_maybe_forward() Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 04/16] ipv4: use RCU protection in ipv4_default_advmss() Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 05/16] ipv4: use RCU protection in rt_is_expired() Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 06/16] tcp: convert to dev_net_rcu() Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 07/16] net: gro: convert four dev_net() calls Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 08/16] udp: convert to dev_net_rcu() Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 09/16] ipv4: icmp: " Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 10/16] ipv6: " Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 11/16] ipv6: input: " Eric Dumazet
2025-02-04 20:09   ` Jakub Kicinski
2025-02-04 20:10     ` Eric Dumazet
2025-02-04 21:00       ` Jakub Kicinski
2025-02-04 21:06         ` Eric Dumazet
2025-02-04 21:17           ` Paul E. McKenney
2025-02-04 21:30             ` Jakub Kicinski
2025-02-04 23:25               ` Paul E. McKenney
2025-02-05  7:57               ` Eric Dumazet
2025-02-05  8:05                 ` Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 12/16] ipv6: output: " Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 13/16] ipv6: use RCU protection in ip6_default_advmss() Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 14/16] net: filter: convert to dev_net_rcu() Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 15/16] flow_dissector: use rcu protection to fetch dev_net() Eric Dumazet
2025-02-04 13:23 ` [PATCH v3 net 16/16] ipv4: use RCU protection in inet_select_addr() Eric Dumazet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).