1. 20 4月, 2018 1 次提交
  2. 19 4月, 2018 2 次提交
  3. 30 3月, 2018 2 次提交
    • K
      net: Don't take rtnl_lock() in wireless_nlevent_flush() · 10256deb
      Kirill Tkhai 提交于
      This function iterates over net_namespace_list and flushes
      the queue for every of them. What does this rtnl_lock()
      protects?! Since we may add skbs to net::wext_nlevents
      without rtnl_lock(), it does not protects us about queuers.
      
      It guarantees, two threads can't flush the queue in parallel,
      that can change the order, but since skb can be queued
      in any order, it doesn't matter, how many threads do this
      in parallel. In case of several threads, this will be even
      faster.
      
      So, we can remove rtnl_lock() here, as it was used for
      iteration over net_namespace_list only.
      Signed-off-by: NKirill Tkhai <ktkhai@virtuozzo.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      10256deb
    • K
      net: Introduce net_rwsem to protect net_namespace_list · f0b07bb1
      Kirill Tkhai 提交于
      rtnl_lock() is used everywhere, and contention is very high.
      When someone wants to iterate over alive net namespaces,
      he/she has no a possibility to do that without exclusive lock.
      But the exclusive rtnl_lock() in such places is overkill,
      and it just increases the contention. Yes, there is already
      for_each_net_rcu() in kernel, but it requires rcu_read_lock(),
      and this can't be sleepable. Also, sometimes it may be need
      really prevent net_namespace_list growth, so for_each_net_rcu()
      is not fit there.
      
      This patch introduces new rw_semaphore, which will be used
      instead of rtnl_mutex to protect net_namespace_list. It is
      sleepable and allows not-exclusive iterations over net
      namespaces list. It allows to stop using rtnl_lock()
      in several places (what is made in next patches) and makes
      less the time, we keep rtnl_mutex. Here we just add new lock,
      while the explanation of we can remove rtnl_lock() there are
      in next patches.
      
      Fine grained locks generally are better, then one big lock,
      so let's do that with net_namespace_list, while the situation
      allows that.
      Signed-off-by: NKirill Tkhai <ktkhai@virtuozzo.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f0b07bb1
  4. 29 3月, 2018 15 次提交
  5. 28 3月, 2018 1 次提交
  6. 27 3月, 2018 1 次提交
  7. 21 3月, 2018 2 次提交
  8. 27 2月, 2018 2 次提交
    • F
      mac80211: support A-MSDU in fast-rx · 24bba078
      Felix Fietkau 提交于
      Only works if the IV was stripped from packets. Create a smaller
      variant of ieee80211_rx_h_amsdu, which bypasses checks already done
      within the fast-rx context.
      
      In order to do so, update cfg80211's ieee80211_data_to_8023_exthdr()
      to take the offset between header and snap.
      Signed-off-by: NFelix Fietkau <nbd@nbd.name>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      24bba078
    • R
      cfg80211: add missing dependency to CFG80211 suboptions · a7887236
      Romain Naour 提交于
      New options introduced by the patch this fixes are still
      enabled even if CFG80211 is disabled.
      
      .config:
          # CONFIG_CFG80211 is not set
          CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
          CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
          # CONFIG_LIB80211 is not set
      
      When CFG80211_REQUIRE_SIGNED_REGDB is enabled, it selects
      SYSTEM_DATA_VERIFICATION which selects SYSTEM_TRUSTED_KEYRING
      that need extract-cert tool. extract-cert needs some openssl
      headers to be installed on the build machine.
      
      Instead of adding missing "depends on CFG80211", it's
      easier to use a 'if' block around all options related
      to CFG80211, so do that.
      
      Fixes: 90a53e44 ("cfg80211: implement regdb signature checking")
      Signed-off-by: NRomain Naour <romain.naour@gmail.com>
      [touch up commit message a bit]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      a7887236
  9. 20 2月, 2018 1 次提交
    • K
      net: Convert cfg80211_pernet_ops · 9c537ca1
      Kirill Tkhai 提交于
      This patch finishes converting pernet_operations
      registered in net/wireless directory.
      
      These pernet_operations have only exit method,
      which moves devices to init_net. This action
      is not pernet_operations-specific, and function
      cfg80211_switch_netns() may be called all time
      during the system life. All necessary protection
      against concurrent cfg80211_pernet_exit() is made
      by rtnl_lock(). So, cfg80211_pernet_ops is able
      to be marked as async.
      Signed-off-by: NKirill Tkhai <ktkhai@virtuozzo.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9c537ca1
  10. 19 2月, 2018 4 次提交
  11. 13 2月, 2018 1 次提交
  12. 31 1月, 2018 6 次提交
  13. 25 1月, 2018 1 次提交
  14. 19 1月, 2018 1 次提交