1. 10 Mar, 2017 1 commit
    • Paolo Abeni's avatar
      net/socket: use per af lockdep classes for sk queues · 581319c5
      Paolo Abeni authored
      Currently the sock queue's spin locks get their lockdep
      classes by the default init_spin_lock() initializer:
      all socket families get - usually, see below - a single
      class for rx, another specific class for tx, etc.
      This can lead to false positive lockdep splat, as
      reported by Andrey.
      Moreover there are two separate initialization points
      for the sock queues, one in sk_clone_lock() and one
      in sock_init_data(), so that e.g. the rx queue lock
      can get one of two possible, different classes, depending
      on the socket being cloned or not.
      This change tries to address the above, setting explicitly
      a per address family lockdep class for each queue's
      spinlock. Also, move the duplicated initialization code to a
      single location.
      
      v1 -> v2:
       - renamed the init helper
      
      rfc -> v1:
       - no changes, tested with several different workload
      Suggested-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      581319c5
  2. 09 Mar, 2017 39 commits