1. 17 5月, 2013 4 次提交
    • S
      mac80211: fix direct probe auth · 6211dd12
      Stanislaw Gruszka 提交于
      We send direct probe to broadcast address, as some APs do not respond to
      unicast PROBE frames when unassociated. Broadcast frames are not acked,
      so we can not use that for trigger MLME state machine, but we need to
      use old timeout mechanism.
      
      This fixes authentication timed out like below:
      
      [ 1024.671974] wlan6: authenticate with 54:e6:fc:98:63:fe
      [ 1024.694125] wlan6: direct probe to 54:e6:fc:98:63:fe (try 1/3)
      [ 1024.695450] wlan6: direct probe to 54:e6:fc:98:63:fe (try 2/3)
      [ 1024.700586] wlan6: send auth to 54:e6:fc:98:63:fe (try 3/3)
      [ 1024.701441] wlan6: authentication with 54:e6:fc:98:63:fe timed out
      
      With fix, we have:
      
      [ 4524.198978] wlan6: authenticate with 54:e6:fc:98:63:fe
      [ 4524.220692] wlan6: direct probe to 54:e6:fc:98:63:fe (try 1/3)
      [ 4524.421784] wlan6: send auth to 54:e6:fc:98:63:fe (try 2/3)
      [ 4524.423272] wlan6: authenticated
      [ 4524.423811] wlan6: associate with 54:e6:fc:98:63:fe (try 1/3)
      [ 4524.427492] wlan6: RX AssocResp from 54:e6:fc:98:63:fe (capab=0x431 status=0 aid=1)
      
      Cc: stable@vger.kernel.org # 3.9
      Signed-off-by: NStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      6211dd12
    • J
      mac80211: report deauth to cfg80211 for local state change · de3d43a3
      Johannes Berg 提交于
      Even if the frame isn't transmitted to the AP, we need to
      report it to cfg80211 so the state there can be updated
      correctly.
      Reported-by: NJouni Malinen <j@w1.fi>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      de3d43a3
    • J
      mac80211: fix HT beacon-based channel switch handling · 3670946f
      Johannes Berg 提交于
      When an HT AP is advertising channel switch in a beacon, it
      doesn't (and shouldn't, according to 802.11-2012 Table 8-20)
      include a secondary channel offset element. The only possible
      interpretation is that the previous secondary channel offset
      remains valid, so use that when switching channel based only
      on beacon information.
      
      VHT requires the Wide Bandwidth Channel Switch subelement to
      be present in the Channel Switch Wrapper element, so the code
      for that is probably ok (see 802.11ac Draft 4, 8.4.2.165.)
      Reported-by: NSujith Manoharan <c_manoha@qca.qualcomm.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      3670946f
    • J
      mac80211: fix IEEE80211_SDATA_DISCONNECT_RESUME · b8360ab8
      Johannes Berg 提交于
      Since commit 12e7f517,
      IEEE80211_SDATA_DISCONNECT_RESUME no longer worked as
      it would simply never be tested. Restore a bit of the
      code removed there and in 9b7d72c1
      to make it work again.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      b8360ab8
  2. 22 4月, 2013 1 次提交
  3. 16 4月, 2013 8 次提交
  4. 11 4月, 2013 2 次提交
    • J
      mac80211: fix cfg80211 interaction on auth/assoc request · 7b119dc0
      Johannes Berg 提交于
      If authentication (or association with FT) is requested by
      userspace, mac80211 currently doesn't tell cfg80211 that it
      disconnected from the AP. That leaves inconsistent state:
      cfg80211 thinks it's connected while mac80211 thinks it's
      not. Typically this won't last long, as soon as mac80211
      reports the new association to cfg80211 the old one goes
      away. If, however, the new authentication or association
      doesn't succeed, then cfg80211 will forever think the old
      one still exists and will refuse attempts to authenticate
      or associate with the AP it thinks it's connected to.
      
      Anders reported that this leads to it taking a very long
      time to reconnect to a network, or never even succeeding.
      I tested this with an AP hacked to never respond to auth
      frames, and one that works, and with just those two the
      system never recovers because one won't work and cfg80211
      thinks it's connected to the other so refuses connections
      to it.
      
      To fix this, simply make mac80211 tell cfg80211 when it is
      no longer connected to the old AP, while authenticating or
      associating to a new one.
      
      Cc: stable@vger.kernel.org
      Reported-by: NAnders Kaseorg <andersk@mit.edu>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      7b119dc0
    • J
      mac80211: always advertise STBC/MCSes even if no AP support · a21a4d3e
      Johannes Berg 提交于
      Advertise STBC capabilities and MCS rates even if the AP
      doesn't support them. This has always been the right thing
      to do, but used to be problematic with some APs. Now WFA
      testing requires this so re-enable it, problematic APs
      would then presumably not pass the test and be fixed.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      a21a4d3e
  5. 08 4月, 2013 6 次提交
  6. 26 3月, 2013 1 次提交
  7. 25 3月, 2013 1 次提交
  8. 24 3月, 2013 1 次提交
  9. 22 3月, 2013 3 次提交
  10. 19 3月, 2013 2 次提交
  11. 06 3月, 2013 2 次提交
  12. 02 3月, 2013 1 次提交
    • J
      mac80211: fix VHT MCS calculation · 24af717c
      Johannes Berg 提交于
      The VHT MCSes we advertise to the AP were supposed to
      be restricted to the AP, but due to a bug in the logic
      mac80211 will advertise rates to the AP that aren't
      even supported by the local device. To fix this skip
      any adjustment if the NSS isn't supported at all.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      24af717c
  13. 27 2月, 2013 2 次提交
    • B
      mac80211: Fix crash due to un-canceled work-items · 49921859
      Ben Greear 提交于
      Some mlme work structs are not cancelled on disassociation
      nor interface deletion, which leads to them running after
      the memory has been freed
      
      There is not a clean way to cancel these in the disassociation
      logic because they must be canceled outside of the ifmgd->mtx
      lock, so just cancel them in mgd_stop logic that tears down
      the station.
      
      This fixes the crashes we see in 3.7.9+.  The crash stack
      trace itself isn't so helpful, but this warning gives
      more useful info:
      
      WARNING: at /home/greearb/git/linux-3.7.dev.y/lib/debugobjects.c:261 debug_print_object+0x7c/0x8d()
      ODEBUG: free active (active state 0) object type: work_struct hint: ieee80211_sta_monitor_work+0x0/0x14 [mac80211]
      Modules linked in: [...]
      Pid: 14743, comm: iw Tainted: G         C O 3.7.9+ #11
      Call Trace:
       [<ffffffff81087ef8>] warn_slowpath_common+0x80/0x98
       [<ffffffff81087fa4>] warn_slowpath_fmt+0x41/0x43
       [<ffffffff812a2608>] debug_print_object+0x7c/0x8d
       [<ffffffff812a2bca>] debug_check_no_obj_freed+0x95/0x1c3
       [<ffffffff8114cc69>] slab_free_hook+0x70/0x79
       [<ffffffff8114ea3e>] kfree+0x62/0xb7
       [<ffffffff8149f465>] netdev_release+0x39/0x3e
       [<ffffffff8136ad67>] device_release+0x52/0x8a
       [<ffffffff812937db>] kobject_release+0x121/0x158
       [<ffffffff81293612>] kobject_put+0x4c/0x50
       [<ffffffff8148f0d7>] netdev_run_todo+0x25c/0x27e
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NBen Greear <greearb@candelatech.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      49921859
    • B
      mac80211: stop timers before canceling work items · 9b5bd5a4
      Ben Greear 提交于
      Re-order the quiesce code so that timers are always
      stopped before work-items are flushed. This was not
      the problem I saw, but I think it may still be more
      correct.
      Signed-off-by: NBen Greear <greearb@candelatech.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      9b5bd5a4
  14. 15 2月, 2013 6 次提交