1. 24 Jun, 2013 3 commits
  2. 19 Jun, 2013 5 commits
  3. 18 Jun, 2013 7 commits
  4. 13 Jun, 2013 3 commits
  5. 12 Jun, 2013 4 commits
  6. 11 Jun, 2013 11 commits
  7. 05 Jun, 2013 3 commits
  8. 04 Jun, 2013 4 commits
    • Johannes Berg's avatar
      cfg80211: make wiphy index start at 0 again · 9b881963
      Johannes Berg authored
      The change to use atomic_inc_return() for assigning the wiphy
      index made the first wiphy index 1 instead of 0. This is fine,
      but we all habitually type "phy0" when we're testing, so make
      it go back to 0 instead of 1 by subtracting 1 from the index.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      9b881963
    • Johannes Berg's avatar
      cfg80211: fix potential deadlock regression · 256c90de
      Johannes Berg authored
      My big locking cleanups caused a problem by registering the
      rfkill instance with the RTNL held, while the callback also
      acquires the RTNL. This potentially causes a deadlock since
      the two locks used (rfkill mutex and RTNL) can be acquired
      in two different orders. Fix this by (un)registering rfkill
      without holding the RTNL. This needs to be done after the
      device struct is registered, but that can also be done w/o
      holding the RTNL.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      256c90de
    • Johannes Berg's avatar
      regulatory: use proper enum return value · 3430140a
      Johannes Berg authored
      get_reg_request_treatment() returns 0 in one case but is
      defined to return an enum, use the proper value REG_REQ_OK.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      3430140a
    • 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