1. 16 Jul, 2013 2 commits
  2. 19 Jun, 2013 2 commits
  3. 18 Jun, 2013 2 commits
  4. 11 Jun, 2013 5 commits
  5. 04 Jun, 2013 3 commits
    • Johannes Berg's avatar
      cfg80211: separate internal SME implementation · ceca7b71
      Johannes Berg authored
      
      
      The current internal SME implementation in cfg80211 is
      very mixed up with the MLME handling, which has been
      causing issues for a long time. There are three things
      that the implementation has to provide:
       * a basic SME implementation for nl80211's connect()
         call (for drivers implementing auth/assoc, which is
         really just mac80211) and wireless extensions
       * MLME events for the userspace SME
       * SME events (connected, disconnected etc.) for all
         different SME implementation possibilities (driver,
         cfg80211 and userspace)
      
      To achieve these goals it isn't necessary to track the
      software SME's connection status outside of it's state
      (which is the part that caused many issues.) Instead,
      track it only in the SME data (wdev->conn) and in the
      general case only track whether the wdev is connected
      or not (via wdev->current_bss.)
      
      Also separate the internal implementation to not have
      callbacks from the SME events, but rather call it from
      the API functions that the driver (or rather mac80211)
      calls. This separates the code better.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      ceca7b71
    • Johannes Berg's avatar
      cfg80211/mac80211: clean up cfg80211 SME APIs · 6ff57cf8
      Johannes Berg authored
      
      
      Do some cleanups in the cfg80211 SME APIs, which are
      only used by mac80211.
      
      Most of these functions get a frame passed, and there
      isn't really any reason to export multiple functions
      as cfg80211 can check the frame type instead, do that.
      
      Additionally, the API functions have confusing names
      like cfg80211_send_...() which was meant to indicate
      that it sends an event to userspace, but gets a bit
      confusing when there's both TX and RX and they're not
      all clearly labeled.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      6ff57cf8
    • Johannes Berg's avatar
      nl80211: remove bogus genlmsg_end() error checking · 9c90a9f6
      Johannes Berg authored
      
      
      genlmsg_end() can't return an error since it returns the
      skb length so remove checks treating the return value as
      an error code.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      9c90a9f6
  6. 03 Jun, 2013 1 commit
  7. 29 May, 2013 1 commit
  8. 27 May, 2013 1 commit
  9. 24 May, 2013 4 commits
    • Johannes Berg's avatar
      cfg80211: remove some locked wrappers from sme API · 83739b03
      Johannes Berg authored
      
      
      By making all the API functions require wdev locking we
      can clean up the API a bit, getting rid of the locking
      version of each function. This also decreases the size
      of cfg80211 by a small amount.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      83739b03
    • Johannes Berg's avatar
      cfg80211: remove some locked wrappers from mlme API · 91bf9b26
      Johannes Berg authored
      
      
      By making all the API functions require wdev locking we
      can clean up the API a bit, getting rid of the locking
      version of each function. This also decreases the size
      of cfg80211 by a small amount.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      91bf9b26
    • Johannes Berg's avatar
      cfg80211: vastly simplify locking · 5fe231e8
      Johannes Berg authored
      
      
      Virtually all code paths in cfg80211 already (need to) hold
      the RTNL. As such, there's little point in having another
      four mutexes for various parts of the code, they just cause
      lock ordering issues (and much of the time, the RTNL and a
      few of the others need thus be held.)
      
      Simplify all this by getting rid of the extra four mutexes
      and just use the RTNL throughout. Only a few code changes
      were needed to do this and we can get rid of a work struct
      for bonus points.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      5fe231e8
    • Jouni Malinen's avatar
      cfg80211: Allow TDLS peer AID to be configured for VHT · 5e4b6f56
      Jouni Malinen authored
      
      
      VHT uses peer AID in the PARTIAL_AID field in TDLS frames. The current
      design for TDLS is to first add a dummy STA entry before completing TDLS
      Setup and then update information on this STA entry based on what was
      received from the peer during the setup exchange.
      
      In theory, this could use NL80211_ATTR_STA_AID to set the peer AID just
      like this is used in AP mode to set the AID of an association station.
      However, existing cfg80211 validation rules prevent this attribute from
      being used with set_station operation. To avoid interoperability issues
      between different kernel and user space version combinations, introduce
      a new nl80211 attribute for the purpose of setting TDLS peer AID. This
      attribute can be used in both the new_station and set_station
      operations. It is not supposed to be allowed to change the AID value
      during the lifetime of the STA entry, but that validation is left for
      drivers to do in the change_station callback.
      Signed-off-by: default avatarJouni Malinen <jouni@qca.qualcomm.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      5e4b6f56
  10. 23 May, 2013 1 commit
  11. 16 May, 2013 5 commits
  12. 22 Apr, 2013 2 commits
  13. 18 Apr, 2013 1 commit
  14. 24 Mar, 2013 1 commit
    • Johannes Berg's avatar
      cfg80211: always check for scan end on P2P device · f9f47529
      Johannes Berg authored
      
      
      If a P2P device wdev is removed while it has a scan, then the
      scan completion might crash later as it is already freed by
      that time. To avoid the crash always check the scan completion
      when the P2P device is being removed for some reason. If the
      driver already canceled it, don't want and free it, otherwise
      warn and leak it to avoid later crashes.
      
      In order to do this, locking needs to be changed away from the
      rdev mutex (which can't always be guaranteed). For now, use
      the sched_scan_mtx instead, I'll rename it to just scan_mtx in
      a later patch.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      f9f47529
  15. 06 Mar, 2013 9 commits