1. 28 Dec, 2009 6 commits
  2. 22 Dec, 2009 3 commits
  3. 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
  4. 07 Dec, 2009 1 commit
  5. 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
  6. 18 Nov, 2009 1 commit
  7. 16 Nov, 2009 1 commit
  8. 27 Oct, 2009 3 commits
  9. 28 Sep, 2009 1 commit
  10. 28 Aug, 2009 1 commit
  11. 14 Aug, 2009 1 commit
  12. 04 Aug, 2009 5 commits
  13. 29 Jul, 2009 1 commit
  14. 27 Jul, 2009 4 commits
  15. 24 Jul, 2009 5 commits
  16. 10 Jul, 2009 3 commits
    • Johannes Berg's avatar
      cfg80211: fix locking · 667503dd
      Johannes Berg authored
      Over time, a lot of locking issues have crept into
      the smarts of cfg80211, so e.g. scan completion can
      race against a new scan, IBSS join can race against
      leaving an IBSS, etc.
      
      Introduce a new per-interface lock that protects
      most of the per-interface data that we need to keep
      track of, and sprinkle assertions about that lock
      everywhere. Some things now need to be offloaded to
      work structs so that we don't require being able to
      sleep in functions the drivers call. The exception
      to that are the MLME callbacks (rx_auth etc.) that
      currently only mac80211 calls because it was easier
      to do that there instead of in cfg80211, and future
      drivers implementing those calls will, if they ever
      exist, probably need to use a similar scheme like
      mac80211 anyway...
      
      In order to be able to handle _deauth and _disassoc
      properly, introduce a cookie passed to it that will
      determine locking requirements.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      667503dd
    • Johannes Berg's avatar
      cfg80211: mlme API must be able to sleep · cb0b4beb
      Johannes Berg authored
      After the mac80211 mlme cleanup, we can require that
      the MLME functions in cfg80211 can sleep. This will
      simplify future work in cfg80211 a lot.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      cb0b4beb
    • Johannes Berg's avatar
      mac80211: rework MLME for multiple authentications · 77fdaa12
      Johannes Berg authored
      Sit tight. This shakes up the world as you know
      it. Let go of your spaghetti tongs, they will no
      longer be required, the horrible statemachine in
      net/mac80211/mlme.c is no more...
      
      With the cfg80211 SME mac80211 now has much less
      to keep track of, but, on the other hand, for FT
      it needs to be able to keep track of at least one
      authentication being in progress while associated.
      So convert from a single state machine to having
      small ones for all the different things we need to
      do. For real FT it will still need work wrt. PS,
      but this should be a good step.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      77fdaa12