mbox series

[net-next,00/10] net: add annotations for sk->sk_bound_dev_if

Message ID 20220511233757.2001218-1-eric.dumazet@gmail.com (mailing list archive)
Headers show
Series net: add annotations for sk->sk_bound_dev_if | expand

Message

Eric Dumazet May 11, 2022, 11:37 p.m. UTC
From: Eric Dumazet <edumazet@google.com>

While writes on sk->sk_bound_dev_if are protected by socket lock,
we have many lockless reads all over the places.

This is based on syzbot report found in the first patch changelog.

Eric Dumazet (10):
  net: annotate races around sk->sk_bound_dev_if
  sctp: read sk->sk_bound_dev_if once in sctp_rcv()
  tcp: sk->sk_bound_dev_if once in inet_request_bound_dev_if()
  net: core: add READ_ONCE/WRITE_ONCE annotations for
    sk->sk_bound_dev_if
  dccp: use READ_ONCE() to read sk->sk_bound_dev_if
  inet: add READ_ONCE(sk->sk_bound_dev_if) in inet_csk_bind_conflict()
  net_sched: em_meta: add READ_ONCE() in var_sk_bound_if()
  l2tp: use add READ_ONCE() to fetch sk->sk_bound_dev_if
  ipv6: add READ_ONCE(sk->sk_bound_dev_if) in INET6_MATCH()
  inet: add READ_ONCE(sk->sk_bound_dev_if) in INET_MATCH()

 include/net/inet6_hashtables.h  | 25 +++++++++++-----
 include/net/inet_hashtables.h   | 52 ++++++++++++++++++++++++---------
 include/net/inet_sock.h         |  5 ++--
 include/net/ip.h                |  2 +-
 include/net/sock.h              |  5 ++--
 net/core/sock.c                 | 11 ++++---
 net/dccp/ipv4.c                 |  2 +-
 net/dccp/ipv6.c                 |  4 +--
 net/ipv4/inet_connection_sock.c | 12 +++++---
 net/ipv6/datagram.c             |  6 ++--
 net/ipv6/udp.c                  | 11 +++----
 net/l2tp/l2tp_ip.c              |  4 ++-
 net/l2tp/l2tp_ip6.c             |  8 +++--
 net/sched/em_meta.c             |  7 +++--
 net/sctp/input.c                |  4 ++-
 15 files changed, 105 insertions(+), 53 deletions(-)