1. 11 4月, 2012 1 次提交
  2. 29 11月, 2011 3 次提交
  3. 10 11月, 2011 3 次提交
  4. 01 10月, 2011 1 次提交
    • J
      mac80211: optimise station flags · c2c98fde
      Johannes Berg 提交于
      The flaglock in struct sta_info has long been
      something that I wanted to get rid of, this
      finally does the conversion to atomic bitops.
      
      The conversion itself is straight-forward in
      most places, a few things needed to change a
      bit since we can no longer use multiple bits
      at the same time.
      
      On x86-64, this is a fairly significant code
      size reduction:
         text	   data	    bss	    dec	    hex
       427861	  23648	   1008	 452517	  6e7a5	before
       425383	  23648	    976	 450007	  6ddd7	after
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c2c98fde
  5. 15 9月, 2011 2 次提交
  6. 28 6月, 2011 1 次提交
  7. 23 12月, 2010 1 次提交
  8. 18 11月, 2010 1 次提交
  9. 07 1月, 2010 1 次提交
  10. 06 1月, 2010 1 次提交
    • J
      mac80211: fix skb buffering issue · cf0277e7
      Johannes Berg 提交于
      Since I removed the master netdev, we've been
      keeping internal queues only, and even before
      that we never told the networking stack above
      the virtual interfaces about congestion. This
      means that packets are queued in mac80211 and
      the upper layers never know, possibly leading
      to memory exhaustion and other problems.
      
      This patch makes all interfaces multiqueue and
      uses ndo_select_queue to put the packets into
      queues per AC. Additionally, when the driver
      stops a queue, we now stop all corresponding
      queues for the virtual interfaces as well.
      
      The injection case will use VO by default for
      non-data frames, and BE for data frames, but
      downgrade any data frames according to ACM. It
      needs to be fleshed out in the future to allow
      chosing the queue/AC in radiotap.
      Reported-by: NLennert Buytenhek <buytenh@marvell.com>
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Cc: stable@kernel.org [2.6.32]
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      cf0277e7
  11. 25 7月, 2009 1 次提交
  12. 11 6月, 2009 1 次提交
    • J
      mac80211: do not pass PS frames out of mac80211 again · 8f77f384
      Johannes Berg 提交于
      In order to handle powersave frames properly we had needed
      to pass these out to the device queues again, and introduce
      the skb->requeue bit. This, however, also has unnecessary
      overhead by needing to 'clean up' already tried frames, and
      this clean-up code is also buggy when software encryption
      is used.
      
      Instead of sending the frames via the master netdev queue
      again, simply put them into the pending queue. This also
      fixes a problem where frames for that particular station
      could be reordered when some were still on the software
      queues and older ones are re-injected into the software
      queue after them.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8f77f384
  13. 23 5月, 2009 1 次提交
  14. 14 5月, 2009 1 次提交
  15. 17 3月, 2009 1 次提交
    • J
      mac80211: Fix WMM ACM parsing and AC downgrade operation · 0eeb59fe
      Jouni Malinen 提交于
      Incorrect local->wmm_acm bits were set for AC_BK and AC_BE. Fix this
      and add some comments to make it easier to understand the AC-to-UP(pair)
      mapping. Set the wmm_acm bits (and show WMM debug) even if the driver
      does not implement conf_tx() handler.
      
      In addition, fix the ACM-based AC downgrade code to not use the
      highest priority in error cases. We need to break the loop to get the
      correct AC_BK value (3) instead of returning 0 (which would indicate
      AC_VO). The comment here was not really very useful either, so let's
      provide somewhat more helpful description of the situation.
      
      Since it is very unlikely that the ACM flag would be set for AC_BK and
      AC_BE, these bugs are not likely to be seen in real life networks.
      Anyway, better do these things correctly should someone really use
      silly AP configuration (and to pass some functionality tests, too).
      
      Remove the TODO comment about handling ACM. Downgrading AC is
      perfectly valid mechanism for ACM. Eventually, we may add support for
      WMM-AC and send a request for a TS, but anyway, that functionality
      won't be here at the location of this TODO comment.
      Signed-off-by: NJouni Malinen <jouni.malinen@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0eeb59fe
  16. 28 2月, 2009 1 次提交
    • J
      mac80211: fix aggregation for hardware with ampdu queues · 96f5e66e
      Johannes Berg 提交于
      Hardware with AMPDU queues currently has broken aggregation.
      
      This patch fixes it by making all A-MPDUs go over the regular AC queues,
      but keeping track of the hardware queues in mac80211. As a first rough
      version, it actually stops the AC queue for extended periods of time,
      which can be removed by adding buffering internal to mac80211, but is
      currently not a huge problem because people rarely use multiple TIDs
      that are in the same AC (and iwlwifi currently doesn't operate as AP).
      
      This is a short-term fix, my current medium-term plan, which I hope to
      execute soon as well, but am not sure can finish before .30, looks like
      this:
       1) rework the internal queuing layer in mac80211 that we use for
          fragments if the driver stopped queue in the middle of a fragmented
          frame to be able to queue more frames at once (rather than just a
          single frame with its fragments)
       2) instead of stopping the entire AC queue, queue up the frames in a
          per-station/per-TID queue during aggregation session initiation,
          when the session has come up take all those frames and put them
          onto the queue from 1)
       3) push the ampdu queue layer abstraction this patch introduces in
          mac80211 into the driver, and remove the virtual queue stuff from
          mac80211 again
      
      This plan will probably also affect ath9k in that mac80211 queues the
      frames instead of passing them down, even when there are no ampdu queues.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      96f5e66e
  17. 01 11月, 2008 1 次提交
  18. 28 10月, 2008 1 次提交
  19. 01 10月, 2008 1 次提交
  20. 21 9月, 2008 1 次提交
  21. 16 9月, 2008 1 次提交
  22. 30 8月, 2008 1 次提交
  23. 03 8月, 2008 1 次提交
  24. 30 7月, 2008 1 次提交
  25. 20 7月, 2008 1 次提交
  26. 18 7月, 2008 3 次提交
  27. 09 7月, 2008 5 次提交
  28. 08 7月, 2008 1 次提交
  29. 03 7月, 2008 1 次提交