1. 13 1月, 2012 1 次提交
  2. 16 12月, 2011 2 次提交
    • J
      mac80211: delay IBSS station insertion · 8bf11d8d
      Johannes Berg 提交于
      In order to notify drivers and simplify the station
      management code, defer IBSS station insertion to a
      work item and don't do it directly while receiving
      a frame.
      
      This increases the complexity in IBSS a little bit,
      but it's pretty straight forward and it allows us
      to reduce the station management complexity (next
      patch) considerably.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8bf11d8d
    • J
      mac80211: refactor station state transitions · d9a7ddb0
      Johannes Berg 提交于
      Station entries can have various states, the most
      important ones being auth, assoc and authorized.
      This patch prepares us for telling the driver about
      these states, we don't want to confuse drivers with
      strange transitions, so with this we enforce that
      they move in the right order between them (back and
      forth); some transitions might happen before the
      driver even knows about the station, but at least
      runtime transitions will be ordered correctly.
      
      As a consequence, IBSS and MESH stations will now
      have the ASSOC flag set (so they can transition to
      AUTHORIZED), and we can get rid of a special case
      in TX processing.
      
      When freeing a station, unwind the state so that
      other parts of the code (or drivers later) can rely
      on the transitions.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d9a7ddb0
  3. 15 12月, 2011 1 次提交
  4. 14 12月, 2011 1 次提交
  5. 07 12月, 2011 2 次提交
  6. 12 11月, 2011 1 次提交
  7. 01 10月, 2011 1 次提交
    • J
      mac80211: optimise station flags · c2c98fde
      Johannes Berg 提交于
      The flaglock in struct sta_info has long been
      something that I wanted to get rid of, this
      finally does the conversion to atomic bitops.
      
      The conversion itself is straight-forward in
      most places, a few things needed to change a
      bit since we can no longer use multiple bits
      at the same time.
      
      On x86-64, this is a fairly significant code
      size reduction:
         text	   data	    bss	    dec	    hex
       427861	  23648	   1008	 452517	  6e7a5	before
       425383	  23648	    976	 450007	  6ddd7	after
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c2c98fde
  8. 28 9月, 2011 1 次提交
  9. 21 9月, 2011 1 次提交
  10. 02 8月, 2011 1 次提交
  11. 09 6月, 2011 1 次提交
  12. 17 5月, 2011 1 次提交
    • J
      mac80211: sparse RCU annotations · 40b275b6
      Johannes Berg 提交于
      This adds sparse RCU annotations to most of
      mac80211, only the mesh code remains to be
      done.
      
      Due the the previous patches, the annotations
      are pretty simple. The only thing that this
      actually changes is removing the RCU usage of
      key->sta in debugfs since this pointer isn't
      actually an RCU-managed pointer (it only has
      a single assignment done before the key even
      goes live). As that is otherwise harmless, I
      decided to make it part of this patch.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      40b275b6
  13. 27 4月, 2011 1 次提交
    • R
      mac80211: Fix warnings due to -Wunused-but-set-variable · 0915cba3
      Rajkumar Manoharan 提交于
      These warnings are exposed by gcc 4.6.
      net/mac80211/sta_info.c: In function 'sta_info_cleanup_expire_buffered':
      net/mac80211/sta_info.c:590:32: warning: variable 'sdata' set but not used
      net/mac80211/ibss.c: In function 'ieee80211_rx_mgmt_auth_ibss':
      net/mac80211/ibss.c:43:34: warning: variable 'status_code' set but not used
      net/mac80211/work.c: In function 'ieee80211_send_assoc':
      net/mac80211/work.c:203:9: warning: variable 'len' set but not used
      net/mac80211/tx.c: In function '__ieee80211_parse_tx_radiotap':
      net/mac80211/tx.c:1039:35: warning: variable 'sband' set but not used
      net/mac80211/mesh.c: In function 'ieee80211_mesh_rx_queued_mgmt':
      net/mac80211/mesh.c:616:28: warning: variable 'ifmsh' set but not used
       ...
      Signed-off-by: NRajkumar Manoharan <rmanoharan@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0915cba3
  14. 05 4月, 2011 1 次提交
  15. 26 2月, 2011 1 次提交
  16. 24 2月, 2011 1 次提交
  17. 15 2月, 2011 1 次提交
  18. 22 1月, 2011 1 次提交
    • B
      cfg80211: Extend channel to frequency mapping for 802.11j · 59eb21a6
      Bruno Randolf 提交于
      Extend channel to frequency mapping for 802.11j Japan 4.9GHz band, according to
      IEEE802.11 section 17.3.8.3.2 and Annex J. Because there are now overlapping
      channel numbers in the 2GHz and 5GHz band we can't map from channel to
      frequency without knowing the band. This is no problem as in most contexts we
      know the band. In places where we don't know the band (and WEXT compatibility)
      we assume the 2GHz band for channels below 14.
      
      This patch does not implement all channel to frequency mappings defined in
      802.11, it's just an extension for 802.11j 20MHz channels. 5MHz and 10MHz
      channels as well as 802.11y channels have been omitted.
      
      The following drivers have been updated to reflect the API changes:
      iwl-3945, iwl-agn, iwmc3200wifi, libertas, mwl8k, rt2x00, wl1251, wl12xx.
      The drivers have been compile-tested only.
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NBrian Prodoehl <bprodoehl@gmail.com>
      Acked-by: NLuciano Coelho <coelho@ti.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      59eb21a6
  19. 14 12月, 2010 1 次提交
  20. 25 11月, 2010 1 次提交
  21. 17 11月, 2010 1 次提交
  22. 26 10月, 2010 1 次提交
  23. 06 10月, 2010 1 次提交
  24. 26 8月, 2010 1 次提交
  25. 17 8月, 2010 1 次提交
  26. 22 7月, 2010 2 次提交
    • J
      mac80211: proper IBSS locking · 7a17a33c
      Johannes Berg 提交于
      IBSS has never had locking, instead relying on some
      memory barriers etc. That's hard to get right, and
      I think we had it wrong too until the previous patch.
      Since this is not performance sensitive, it doesn't
      make sense to have the maintenance overhead of that,
      so add proper locking.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      7a17a33c
    • J
      mac80211: fix IBSS lockdep complaint · bc05d19f
      Johannes Berg 提交于
      Bob reported a lockdep complaint originating in
      the mac80211 IBSS code due to the common work
      struct patch. The reason is that the IBSS and
      station mode code have different locking orders
      for the cfg80211 wdev lock and the work struct
      (where "locking" implies running/canceling).
      
      Fix this by simply not canceling the work in
      the IBSS code, it is not necessary since when
      the REQ_RUN bit is cleared, the work will run
      without effect if it runs. When the interface
      is set down, it is flushed anyway, so there's
      no concern about it running after memory has
      been invalidated either.
      
      This fixes
      https://bugzilla.kernel.org/show_bug.cgi?id=16419
      
      Additionally, looking into this I noticed that
      there's a small window while the IBSS is torn
      down in which the work may be rescheduled and
      the REQ_RUN bit be set again after leave() has
      cleared it when a scan finishes at exactly the
      same time. Avoid that by setting the ssid_len
      to zero before clearing REQ_RUN which signals
      to the scan finish code that this interface is
      not active.
      Reported-by: NBob Copeland <me@bobcopeland.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      bc05d19f
  27. 15 6月, 2010 8 次提交
  28. 04 6月, 2010 1 次提交
  29. 08 5月, 2010 1 次提交
    • J
      mac80211: improve HT channel handling · 0aaffa9b
      Johannes Berg 提交于
      Currently, when one interface switches HT mode,
      all others will follow along. This is clearly
      undesirable, since the new one might switch to
      no-HT while another one is operating in HT.
      
      Address this issue by keeping track of the HT
      mode per interface, and allowing only changes
      that are compatible, i.e. switching into HT40+
      is not possible when another interface is in
      HT40-, in that case the second one needs to
      fall back to HT20.
      
      Also, to allow drivers to know what's going on,
      store the per-interface HT mode (channel type)
      in the virtual interface's bss_conf.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0aaffa9b
  30. 06 5月, 2010 1 次提交