1. 31 Mar, 2010 3 commits
  2. 24 Mar, 2010 1 commit
  3. 23 Mar, 2010 1 commit
  4. 03 Mar, 2010 1 commit
    • Sujith's avatar
      mac80211: Fix HT rate control configuration · 4fa00437
      Sujith authored
      Handling HT configuration changes involved setting the channel
      with the new HT parameters and then issuing a rate_update()
      notification to the driver.
      
      This behavior changed after the off-channel changes. Now, the channel
      is not updated with the new HT params in enable_ht() - instead, it
      is now done when the scan work terminates. This results in the driver
      depending on stale information, defaulting to non-HT mode always.
      
      Fix this by passing the new channel type to the driver.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarSujith <Sujith.Manoharan@atheros.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      4fa00437
  5. 02 Mar, 2010 1 commit
    • Jouni Malinen's avatar
      mac80211: Fix reassociation processing (within ESS roaming) · 9c87ba67
      Jouni Malinen authored
      Commit e1dd33f60ced091114e4aacf141e0d03b88d3e13 changed cfg80211 to
      allow association commands while in associated state to enable support
      for roaming within an ESS. However, this was not enough to resolve all
      cases with mac80211 which needs some additional handling of the
      reassociation case to clear internal state with the BSS that was in use
      previously.
      
      This patch makes ieee80211_mgd_assoc() accept a valid reassociation
      command and clean the association state with the previous BSS. This
      fixes roaming between BSSes in an ESS when using wpa_supplicant with
      -Dnl80211.
      Signed-off-by: default avatarJouni Malinen <j@w1.fi>
      Cc: stable@kernel.org
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      9c87ba67
  6. 15 Feb, 2010 1 commit
    • Jouni Malinen's avatar
      cfg80211/mac80211: allow registering for and sending action frames · 026331c4
      Jouni Malinen authored
      This implements a new command to register for action frames
      that userspace wants to handle instead of the in-kernel
      rejection. It is then responsible for rejecting ones that
      it decided not to handle. There is no unregistration, but
      the socket can be closed for that.
      
      Frames that are not registered for will not be forwarded
      to userspace and will be rejected by the kernel, the
      cfg80211 API helps implementing that.
      
      Additionally, this patch adds a new command that allows
      doing action frame transmission from userspace. It can be
      used either to exchange action frames on the current
      operational channel (e.g., with the AP with which we are
      currently associated) or to exchange off-channel Public
      Action frames with the remain-on-channel command.
      Signed-off-by: default avatarJouni Malinen <jouni.malinen@atheros.com>
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      026331c4
  7. 10 Feb, 2010 1 commit
  8. 09 Feb, 2010 1 commit
  9. 08 Feb, 2010 3 commits
    • Johannes Berg's avatar
      mac80211: fix deauth race · 29165e4c
      Johannes Berg authored
      When userspace requests a deauth while the
      authentication work is pending in the auth
      (not probe) state, we do not properly abort
      the work and then things get confused.
      
      Fix that and also improve the checks here
      to include the correct virtual interface,
      just in case two virtual interfaces would
      ever try to connect to the same BSS.
      
      Also fix a bug -- need to use list_del_rcu
      instead of just list_del to free a work
      item.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      29165e4c
    • Johannes Berg's avatar
      mac80211: allow station add/remove to sleep · 34e89507
      Johannes Berg authored
      Many drivers would like to sleep during station
      addition and removal, and currently have a high
      complexity there from not being able to.
      
      This introduces two new callbacks sta_add() and
      sta_remove() that drivers can implement instead
      of using sta_notify() and that can sleep, and
      the new sta_add() callback is also allowed to
      fail.
      
      The reason we didn't do this previously is that
      the IBSS code wants to insert stations from the
      RX path, which is a tasklet, so cannot sleep.
      This patch will keep the station allocation in
      that path, but moves adding the station to the
      driver out of line. Since the addition can now
      fail, we can have IBSS peer structs the driver
      rejected -- in that case we still talk to the
      station but never tell the driver about it in
      the control.sta pointer. If there will ever be
      a driver that has a low limit on the number of
      stations and that cannot talk to any stations
      that are not known to it, we need to do come up
      with a new strategy of handling larger IBSSs,
      maybe quicker expiry or rejecting peers.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      34e89507
    • Johannes Berg's avatar
      mac80211: don't probe if we have probe response · 070bb547
      Johannes Berg authored
      We can now easily determine whether we already
      have probe response information for the BSS we
      are asked to connect to, in which case there's
      little point in probing the BSS again.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      070bb547
  10. 26 Jan, 2010 1 commit
  11. 15 Jan, 2010 1 commit
  12. 12 Jan, 2010 6 commits
  13. 08 Jan, 2010 1 commit
  14. 06 Jan, 2010 1 commit
  15. 28 Dec, 2009 8 commits
  16. 22 Dec, 2009 3 commits
  17. 21 Dec, 2009 3 commits
    • Johannes Berg's avatar
      mac80211: reduce reliance on netdev · 47846c9b
      Johannes Berg authored
      For bluetooth 3, we will most likely not have
      a netdev for a virtual interface (sdata), so
      prepare for that by reducing the reliance on
      having a netdev. This patch moves the name
      and address fields into the sdata struct and
      uses them from there all over. Some work is
      needed to keep them sync'ed, but that's not
      a lot of work and in slow paths anyway.
      
      In doing so, this also reduces the number of
      pointer dereferences in many places, because
      of things like sdata->dev->dev_addr becoming
      sdata->vif.addr.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      47846c9b
    • Johannes Berg's avatar
      mac80211: make station management completely depend on vif · abe60632
      Johannes Berg authored
      The station management currently uses the virtual
      interface, but you cannot add the same station to
      multiple virtual interfaces if you're communicating
      with it in multiple ways.
      
      This restriction should be lifted so that in the
      future we can, for instance, support bluetooth 3
      with an access point that mac80211 is already
      associated to.
      
      We can do that by requiring all sta_info_get users
      to provide the virtual interface and making the RX
      code aware that an address may match more than one
      station struct. Thanks to the previous patches this
      one isn't all that large and except for the RX and
      TX status paths changes has low complexity.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      abe60632
    • Johannes Berg's avatar
      mac80211: fix WMM AP settings application · 0183826b
      Johannes Berg authored
      My
        commit 77fdaa12
        Author: Johannes Berg <johannes@sipsolutions.net>
        Date:   Tue Jul 7 03:45:17 2009 +0200
      
            mac80211: rework MLME for multiple authentications
      
      inadvertedly broke WMM because it removed, along with
      a bunch of other now useless initialisations, the line
      initialising sdata->u.mgd.wmm_last_param_set to -1
      which would make it adopt any WMM parameter set. If,
      as is usually the case, the AP uses WMM parameter set
      sequence number zero, we'd never update it until the
      AP changes the sequence number.
      
      Add the missing initialisation back to get the WMM
      settings from the AP applied locally.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Cc: stable@kernel.org [2.6.31+]
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      0183826b
  18. 07 Dec, 2009 1 commit
  19. 19 Nov, 2009 1 commit
    • Johannes Berg's avatar
      mac80211: avoid spurious deauth frames/messages · a58ce43f
      Johannes Berg authored
      With WEXT, it happens frequently that the SME
      requests an authentication but then deauthenticates
      right away because some new parameters came along.
      Every time this happens we print a deauth message
      and send a deauth frame, but both of that is rather
      confusing. Avoid it by aborting the authentication
      process silently, and telling cfg80211 about that.
      
      The patch looks larger than it really is:
      __cfg80211_auth_remove() is split out from
      cfg80211_send_auth_timeout(), there's no new code
      except __cfg80211_auth_canceled() (a one-liner) and
      the mac80211 bits (7 new lines of code).
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      a58ce43f
  20. 18 Nov, 2009 1 commit