1. 03 1月, 2013 1 次提交
    • J
      mac80211: fix station destruction in AP/mesh modes · 97f97b1f
      Johannes Berg 提交于
      Unfortunately, commit b22cfcfc, intended to speed up roaming
      by avoiding the synchronize_rcu() broke AP/mesh modes as it moved
      some code into that work item that will still call into the driver
      at a time where it's no longer expected to handle this: after the
      AP or mesh has been stopped.
      
      To fix this problem remove the per-station work struct, maintain a
      station cleanup list instead and flush this list when stations are
      flushed. To keep this patch smaller for stable, do this when the
      stations are flushed (sta_info_flush()). This unfortunately brings
      back the original roaming delay; I'll fix that again in a separate
      patch.
      
      Also, Ben reported that the original commit could sometimes (with
      many interfaces) cause long delays when an interface is set down,
      due to blocking on flush_workqueue(). Since we now maintain the
      cleanup list, this particular change of the original patch can be
      reverted.
      
      Cc: stable@vger.kernel.org [3.7]
      Reported-by: NBen Greear <greearb@candelatech.com>
      Tested-by: NBen Greear <greearb@candelatech.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      97f97b1f
  2. 26 11月, 2012 1 次提交
    • J
      mac80211: convert to channel definition struct · 4bf88530
      Johannes Berg 提交于
      Convert mac80211 (and where necessary, some drivers a
      little bit) to the new channel definition struct.
      
      This will allow extending mac80211 for VHT, which is
      currently restricted to channel contexts since there
      are no drivers using that which makes it easier. As
      I also don't care about VHT for drivers not using the
      channel context API, I won't convert the previous API
      to VHT support.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      4bf88530
  3. 19 11月, 2012 1 次提交
  4. 11 11月, 2012 1 次提交
  5. 05 11月, 2012 1 次提交
  6. 19 10月, 2012 1 次提交
    • M
      mac80211: make client powersave independent of interface type · d012a605
      Marco Porsch 提交于
      This patch prepares mac80211 for a later implementation of mesh or
      ad-hoc powersave clients.
      The structures related to powersave (buffer, TIM map, counters) are
      moved from the AP-specific interface structure to a generic structure
      that can be embedded into any interface type.
      The functions related to powersave are prepared to allow easy
      extension with different interface types. For example with:
      
      + } else if (sta->sdata->vif.type == NL80211_IFTYPE_MESH_POINT) {
      +         ps = &sdata->u.mesh.ps;
      
      Some references to the AP's beacon structure are removed where they
      were obviously not used.
      
      The patch compiles without warning and has been briefly tested as AP
      interface with one client in PS mode.
      Signed-off-by: NMarco Porsch <marco.porsch@etit.tu-chemnitz.de>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      d012a605
  7. 17 10月, 2012 2 次提交
  8. 16 10月, 2012 1 次提交
  9. 21 9月, 2012 1 次提交
  10. 10 9月, 2012 1 次提交
  11. 24 6月, 2012 1 次提交
    • J
      mac80211: clean up debugging · bdcbd8e0
      Johannes Berg 提交于
      There are a few things that make the logging and
      debugging in mac80211 less useful than it should
      be right now:
       * a lot of messages should be pr_info, not pr_debug
       * wholesale use of pr_debug makes it require *both*
         Kconfig and dynamic configuration
       * there are still a lot of ifdefs
       * the style is very inconsistent, sometimes the
         sdata->name is printed in front
      
      Clean up everything, introducing new macros and
      separating out the station MLME debugging into
      a new Kconfig symbol.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      bdcbd8e0
  12. 06 6月, 2012 2 次提交
  13. 05 6月, 2012 1 次提交
  14. 10 5月, 2012 1 次提交
    • J
      mac80211: Convert compare_ether_addr to ether_addr_equal · b203ca39
      Joe Perches 提交于
      Use the new bool function ether_addr_equal to add
      some clarity and reduce the likelihood for misuse
      of compare_ether_addr for sorting.
      
      Done via cocci script:
      
      $ cat compare_ether_addr.cocci
      @@
      expression a,b;
      @@
      -	!compare_ether_addr(a, b)
      +	ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	compare_ether_addr(a, b)
      +	!ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	!ether_addr_equal(a, b) == 0
      +	ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	!ether_addr_equal(a, b) != 0
      +	!ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	ether_addr_equal(a, b) == 0
      +	!ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	ether_addr_equal(a, b) != 0
      +	ether_addr_equal(a, b)
      
      @@
      expression a,b;
      @@
      -	!!ether_addr_equal(a, b)
      +	ether_addr_equal(a, b)
      Signed-off-by: NJoe Perches <joe@perches.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b203ca39
  15. 25 4月, 2012 2 次提交
  16. 10 4月, 2012 1 次提交
  17. 06 3月, 2012 1 次提交
  18. 01 3月, 2012 1 次提交
  19. 28 2月, 2012 1 次提交
  20. 09 2月, 2012 1 次提交
  21. 07 2月, 2012 5 次提交
  22. 31 1月, 2012 4 次提交
  23. 25 1月, 2012 2 次提交
  24. 17 1月, 2012 1 次提交
  25. 13 1月, 2012 1 次提交
  26. 05 1月, 2012 1 次提交
    • M
      mac80211: fix kernel panic in IBSS due to a regression · e46a2cf9
      Mohammed Shafi Shajakhan 提交于
      kernel panic occurs when we create an IBSS mode and leave it for
      sometime without any joiner and this is introduced by the
      commit ec2b774e where we don't
      put proper braces for 'list_for_each_entry_safe' and we pass an
      invalid 'sta' pointer to __sta_info_destroy
      
      EIP is at __list_add+0xe/0xa0
      EAX: f3b63db4 EBX: 00000000 ECX: eab88c1c EDX: 00000000
      ESI: 00000000 EDI: 00000246 EBP: f3b63d80 ESP: f3b63d58
      DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
      Process kworker/u:2 (pid: 198, ti=f3b62000 task=f3afbea0
      task.ti=f3b62000)
      Stack:
      00000000 00000000 f9ef9821 00000000 00000000 eab88c30
      f3b63d80 c017f623
      eab88bf0 eab88bf0 f3b63dd0 c066f925 00000000 00000002
      00000000 f9ef9821
      f3b63da0 c0180a2b eab88c1c eab88c30 00000002 f3afbea0
      eab88bf4 f3b63db4
       Call Trace:
      [<f9ef9821>] ? __ieee80211_stop_tx_ba_session+0x31/0x60
      [mac80211]
      [<c017f623>] ? debug_mutex_add_waiter+0x23/0x60
      [<c066f925>] __mutex_lock_common+0xd5/0x390
      [<f9ef9821>] ? __ieee80211_stop_tx_ba_session+0x31/0x60
      [mac80211]
      [<c0180a2b>] ? trace_hardirqs_off+0xb/0x10
      [<c066fd37>] mutex_lock_nested+0x47/0x60
      [<f9ef9821>] ? __ieee80211_stop_tx_ba_session+0x31/0x60
      [mac80211]
      [<f9ef9821>] __ieee80211_stop_tx_ba_session+0x31/0x60
      [mac80211]
      [<f9ef8989>] ieee80211_sta_tear_down_BA_sessions+0x39/0x60 [mac80211]
      [<f9ef1a67>] __sta_info_destroy+0x57/0x780 [mac80211]
      [<f9ef2223>] ieee80211_sta_expire+0x93/0xb0 [mac80211]
      [<f9efc8f6>] ieee80211_ibss_work+0x2d6/0x530 [mac80211]
      
      Cc: Marek Lindner <lindner_marek@yahoo.de>
      Signed-off-by: NMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e46a2cf9
  27. 22 12月, 2011 1 次提交
  28. 20 12月, 2011 1 次提交
  29. 16 12月, 2011 1 次提交