1. 22 Apr, 2009 15 commits
  2. 20 Apr, 2009 1 commit
  3. 28 Mar, 2009 10 commits
    • Johannes Berg's avatar
      cfg80211: fix locking in nl80211_set_wiphy · 4bbf4d56
      Johannes Berg authored
      
      
      Luis reports that there's a circular locking dependency;
      this is because cfg80211_dev_rename() will acquire the
      cfg80211_mutex while the device mutex is held, while
      this normally is done the other way around. The solution
      is to open-code the device-getting in nl80211_set_wiphy
      and require holding the mutex around cfg80211_dev_rename
      rather than acquiring it within.
      
      Also fix a bug -- rtnl locking is expected by drivers so
      we need to provide it.
      Reported-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      4bbf4d56
    • Johannes Berg's avatar
      cfg80211: accept no-op interface mode changes · ac7f9cfa
      Johannes Berg authored
      
      
      When somebody tries to set the interface mode to the existing
      mode, don't ask the driver but silently accept the setting.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      ac7f9cfa
    • Jouni Malinen's avatar
      nl80211: Check iftype in cfg80211 code · eec60b03
      Jouni Malinen authored
      
      
      We do not want to require all the drivers using cfg80211 to need to do
      this. In addition, make the error values consistent by using
      EOPNOTSUPP instead of semi-random assortment of errno values.
      Signed-off-by: default avatarJouni Malinen <jouni.malinen@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      eec60b03
    • Jouni Malinen's avatar
      nl80211: Check that netif_runnin is true in cfg80211 code · 35a8efe1
      Jouni Malinen authored
      
      
      We do not want to require all the drivers using cfg80211 to need to do
      this or to be prepared to handle these commands when the interface is
      down.
      Signed-off-by: default avatarJouni Malinen <jouni.malinen@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      35a8efe1
    • Jouni Malinen's avatar
      nl80211: Add more through validation of MLME command parameters · 255e737e
      Jouni Malinen authored
      
      
      Check that the used authentication type and reason code are valid here
      so that drivers/mac80211 do not need to care about this. In addition,
      remove the unnecessary validation of SSID attribute length which is
      taken care of by netlink policy.
      Signed-off-by: default avatarJouni Malinen <jouni.malinen@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      255e737e
    • Jouni Malinen's avatar
      nl80211: Remove NL80211_CMD_SET_MGMT_EXTRA_IE · 65fc73ac
      Jouni Malinen authored
      
      
      The functionality that NL80211_CMD_SET_MGMT_EXTRA_IE provided can now
      be achieved with cleaner design by adding IE(s) into
      NL80211_CMD_TRIGGER_SCAN, NL80211_CMD_AUTHENTICATE,
      NL80211_CMD_ASSOCIATE, NL80211_CMD_DEAUTHENTICATE, and
      NL80211_CMD_DISASSOCIATE.
      
      Since this is a very recently added command and there are no known (or
      known planned) applications using NL80211_CMD_SET_MGMT_EXTRA_IE and
      taken into account how much extra complexity it adds to the IE
      processing we have now (and need to add in the future to fix IE order
      in couple of frames), it looks like the best option is to just remove
      the implementation of this command for now. The enum values themselves
      are left to avoid changing the nl80211 command or attribute numbers.
      Signed-off-by: default avatarJouni Malinen <jouni.malinen@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      65fc73ac
    • Jouni Malinen's avatar
      nl80211: Add MLME primitives to support external SME · 636a5d36
      Jouni Malinen authored
      
      
      This patch adds new nl80211 commands to allow user space to request
      authentication and association (and also deauthentication and
      disassociation). The commands are structured to allow separate
      authentication and association steps, i.e., the interface between
      kernel and user space is similar to the MLME SAP interface in IEEE
      802.11 standard and an user space application takes the role of the
      SME.
      
      The patch introduces MLME-AUTHENTICATE.request,
      MLME-{,RE}ASSOCIATE.request, MLME-DEAUTHENTICATE.request, and
      MLME-DISASSOCIATE.request primitives. The authentication and
      association commands request the actual operations in two steps
      (assuming the driver supports this; if not, separate authentication
      step is skipped; this could end up being a separate "connect"
      command).
      
      The initial implementation for mac80211 uses the current
      net/mac80211/mlme.c for actual sending and processing of management
      frames and the new nl80211 commands will just stop the current state
      machine from moving automatically from authentication to association.
      Future cleanup may move more of the MLME operations into cfg80211.
      
      The goal of this design is to provide more control of authentication and
      association process to user space without having to move the full MLME
      implementation. This should be enough to allow IEEE 802.11r FT protocol
      and 802.11s SAE authentication to be implemented. Obviously, this will
      also bring the extra benefit of not having to use WEXT for association
      requests with mac80211. An example implementation of a user space SME
      using the new nl80211 commands is available for wpa_supplicant.
      
      This patch is enough to get IEEE 802.11r FT protocol working with
      over-the-air mechanism (over-the-DS will need additional MLME
      primitives for handling the FT Action frames).
      Signed-off-by: default avatarJouni Malinen <j@w1.fi>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      636a5d36
    • Jouni Malinen's avatar
      nl80211: Event notifications for MLME events · 6039f6d2
      Jouni Malinen authored
      
      
      Add new nl80211 event notifications (and a new multicast group, "mlme")
      for informing user space about received and processed Authentication,
      (Re)Association Response, Deauthentication, and Disassociation frames in
      station and IBSS modes (i.e., MLME SAP interface primitives
      MLME-AUTHENTICATE.confirm, MLME-ASSOCIATE.confirm,
      MLME-REASSOCIATE.confirm, MLME-DEAUTHENTICATE.indicate, and
      MLME-DISASSOCIATE.indication). The event data is encapsulated as the 802.11
      management frame since we already have the frame in that format and it
      includes all the needed information.
      
      This is the initial step in providing MLME SAP interface for
      authentication and association with nl80211. In other words, kernel code
      will act as the MLME and a user space application can control it as the
      SME.
      Signed-off-by: default avatarJouni Malinen <j@w1.fi>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      6039f6d2
    • Johannes Berg's avatar
      nl80211: rework locking · 3b85875a
      Johannes Berg authored
      
      
      When I added scanning to cfg80211, we got a lock dependency like this:
      	rtnl --> cfg80211_mtx
      
      nl80211, on the other hand, has the reverse lock dependency:
      	cfg80211_mtx --> rtnl
      
      which clearly is a bad idea. This patch reworks nl80211 to take these
      two locks in the other order to fix the possible, and easily
      triggerable, deadlock.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      3b85875a
    • Johannes Berg's avatar
      nl80211: export supported commands · 8fdc621d
      Johannes Berg authored
      
      
      This makes nl80211 export the supported commands (command groups)
      per wiphy so userspace has an idea what it can do -- this will be
      required reading for userspace when we introduce auth/assoc /or/
      connect for older hardware that cannot separate auth and assoc.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      8fdc621d
  4. 20 Mar, 2009 1 commit
  5. 16 Mar, 2009 1 commit
  6. 27 Feb, 2009 10 commits
  7. 13 Feb, 2009 1 commit
  8. 09 Feb, 2009 1 commit