All new accounts created on Gitlab now require administrator approval. If you invite any collaborators, please let Flux staff know so they can approve the accounts.

  1. 19 Dec, 2013 2 commits
    • Johannes Berg's avatar
      mac80211: fix iflist_mtx/mtx locking in radar detection · 34a3740d
      Johannes Berg authored
      The scan code creates an iflist_mtx -> mtx locking dependency,
      and a few other places, notably radar detection, were creating
      the opposite dependency, causing lockdep to complain. As scan
      and radar detection are mutually exclusive, the deadlock can't
      really happen in practice, but it's still bad form.
      
      A similar issue exists in the monitor mode code, but this is
      only used by channel-context drivers right now and those have
      to have hardware scan, so that also can't happen.
      
      Still, fix these issues by making some of the channel context
      code require the mtx to be held rather than acquiring it, thus
      allowing the monitor/radar callers to keep the iflist_mtx->mtx
      lock ordering.
      
      While at it, also fix access to the local->scanning variable
      in the radar code, and document that radar_detect_enabled is
      now properly protected by the mtx.
      
      All this would now introduce an ABBA deadlock between the DFS
      work cancelling and local->mtx, so change the locking there a
      bit to not need to use cancel_delayed_work_sync() but be able
      to just use cancel_delayed_work(). The work is also safely
      stopped/removed when the interface is stopped, so no extra
      changes are needed.
      Reported-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      Tested-by: default avatarSimon Wunderlich <sw@simonwunderlich.de>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      34a3740d
    • Johannes Berg's avatar
      mac80211: remove unnecessary iflist_mtx locking · 6924d013
      Johannes Berg authored
      The radar detection code changed a few times, and due to
      the changes some iflist_mtx locking stayed in that isn't
      actually necessary - remove it.
      
      One version of the code needed it because an AP interface's
      VLAN list was changed to use this, but then we moved the
      list handling outside of the chanctx handling and thus the
      locking was no longer needed.
      Tested-by: default avatarSimon Wunderlich <sw@simonwunderlich.de>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      6924d013
  2. 16 Dec, 2013 7 commits
  3. 05 Dec, 2013 1 commit
  4. 02 Dec, 2013 5 commits
  5. 25 Nov, 2013 7 commits
  6. 28 Oct, 2013 5 commits
    • Michal Kazior's avatar
      mac80211: fix uninitialized variable · 0951ebb8
      Michal Kazior authored
      CSA completion could call in a driver
      bss_info_changed() with a garbled `changed` flag
      leading to all sorts of problems.
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      0951ebb8
    • Chun-Yeow Yeoh's avatar
      {nl,cfg,mac}80211: implement mesh channel switch userspace API · b8456a14
      Chun-Yeow Yeoh authored
      Implement the required procedures for mesh channel switching as defined
      in the IEEE Std 802.11-2012 section 10.9.8.4.3 and also handle the CSA
      and MCSP elements as followed:
       * Add the function for updating the beacon and probe response frames
         with CSA and MCSP elements during the period of switching to the new
         channel. Both CSA and MCSP elements must be included in beacon and
         probe response frames until the intended channel switch time.
       * The ifmsh->csa_settings is set to NULL and the CSA and MCSP elements
         will then be removed from the beacon or probe response frames once the
         new channel is switched to.
      Signed-off-by: default avatarChun-Yeow Yeoh <yeohchunyeow@cozybit.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      b8456a14
    • Chun-Yeow Yeoh's avatar
      {nl,cfg,mac}80211: enable the triggering of CSA frame in mesh · c6da674a
      Chun-Yeow Yeoh authored
      Allow the triggering of CSA frame using mesh interface. The
      rules are more or less same with IBSS, such as not allowed to
      change between the band and channel width has to be same from
      the previous mode. Also, move the ieee80211_send_action_csa
      to a common space so that it can be re-used by mesh interface.
      Signed-off-by: default avatarChun-Yeow Yeoh <yeohchunyeow@cozybit.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      c6da674a
    • Marco Porsch's avatar
      mac80211: fixes for mesh powersave logic · 446075d7
      Marco Porsch authored
      This patch fixes errors in the mesh powersave logic which
      cause that remote peers do not get peer power mode change
      notifications and mesh peer service periods (MPSPs) got
      stuck.
      
      When closing a peer link, set the (now invalid) peer-specific
      power mode to 'unknown'.
      
      Avoid overhead when local power mode is unchanged.
      
      Reliably clear MPSP flags on peering status update.
      
      Avoid MPSP flags getting stuck by not requesting a further
      MPSP ownership if we already are an MPSP owner.
      Signed-off-by: default avatarMarco Porsch <marco@cozybit.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      446075d7
    • Emmanuel Grumbach's avatar
      mac80211: implement SMPS for AP · 687da132
      Emmanuel Grumbach authored
      When the driver requests to move to STATIC or DYNAMIC SMPS,
      we send an action frame to each associated station and
      reconfigure the channel context / driver.
      Of course, non-MIMO stations are ignored.
      
      The beacon isn't updated. The association response will
      include the original capabilities. Stations that associate
      while in non-OFF SMPS mode will get an action frame right
      after association to inform them about our current state.
      Note that we wait until the end of the EAPOL. Sending an
      action frame before the EAPOL is finished can be an issue
      for a few clients. Clients aren't likely to send EAPOL
      frames in MIMO anyway.
      
      When the SMPS configuration gets more permissive (e.g.
      STATIC -> OFF), we don't wake up stations that are asleep
      We remember that they don't know about the change and send
      the action frame when they wake up.
      
      When the SMPS configuration gets more restrictive (e.g.
      OFF -> STATIC), we set the TIM bit for every sleeping STA.
      uAPSD stations might send MIMO until they poll the action
      frame, but this is for a short period of time.
      Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      [fix vht streams loop, initialisation]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      687da132
  7. 02 Oct, 2013 1 commit
  8. 30 Sep, 2013 1 commit
  9. 26 Sep, 2013 1 commit
  10. 12 Aug, 2013 2 commits
  11. 01 Aug, 2013 1 commit
  12. 16 Jul, 2013 2 commits
  13. 24 Jun, 2013 1 commit
  14. 18 Jun, 2013 1 commit
    • Antonio Quartulli's avatar
      Revert "mac80211: in IBSS use the Auth frame to trigger STA reinsertion" · 52874a5e
      Antonio Quartulli authored
      This reverts commit 6d810f10
      
      In this way an IBSS station will not use the AUTH messages
      to trigger a state reinitialisation anymore.
      
      The behaviour was racy and was not working properly.
      It has been introduced to help wpa_supplicant to support
      IBSS/RSN, however all the logic is now getting moved into
      wpa_s itself which will also be in charge of handling the
      AUTH messages thanks to the mgmt frame registration.
      
      If userspace does not register for receiving AUTH frames
      then mac80211 will still reply by itself.
      
      At the same time, the auth frame registration counter can be
      removed since it is not needed anymore.
      Signed-off-by: default avatarAntonio Quartulli <antonio@open-mesh.com>
      [remove unused variable]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      52874a5e
  15. 12 Jun, 2013 1 commit
  16. 11 Jun, 2013 2 commits