1. 08 4月, 2010 4 次提交
  2. 07 4月, 2010 2 次提交
  3. 01 4月, 2010 3 次提交
  4. 10 3月, 2010 1 次提交
  5. 17 2月, 2010 1 次提交
  6. 16 2月, 2010 2 次提交
  7. 09 2月, 2010 2 次提交
    • V
      mac80211: Reset dynamic ps timer in Rx path. · e15276a4
      Vivek Natarajan 提交于
      The current mac80211 implementation enables power save if there
      is no Tx traffic for a specific timeout. Hence, PS is triggered
      even if there is a continuous Rx only traffic(like UDP) going on.
      This makes the drivers to wait on the tim bit in the next beacon
      to awake which leads to redundant sleep-wake cycles.
      Fix this by restarting the dynamic ps timer on receiving every
      data packet.
      Signed-off-by: NVivek Natarajan <vnatarajan@atheros.com>
      CC: stable@kernel.org
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e15276a4
    • J
      mac80211: allow station add/remove to sleep · 34e89507
      Johannes Berg 提交于
      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: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      34e89507
  8. 02 2月, 2010 1 次提交
  9. 23 1月, 2010 1 次提交
    • F
      mac80211: fix rx data handling for non-data frames on multiple vifs · 4bb29f8c
      Felix Fietkau 提交于
      The loop that passes non-data frames to all relevant vifs inside the
      __ieee80211_rx_handle_packet keeps a pointer to the previous sdata to
      avoid having to make unnecessary copies of the frame it's handling.
      This led to a bug that caused it to apply the ieee80211_rx_data state
      to the wrong interface, thereby either missing the rx.sta pointer or
      having it assigned where it shouldn't be.
      This breaks (among other things) aggregation on some vifs, as action
      frame exchages are dropped to the cooked monitor interface due to
      rx->sta being NULL.
      Fix this by restructuring the loop so that it prepares the rx data just
      before making the skb copy and calling the rx handlers.
      
      Cc: stable@kernel.org
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      4bb29f8c
  10. 13 1月, 2010 1 次提交
  11. 09 1月, 2010 1 次提交
  12. 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
  13. 29 12月, 2009 2 次提交
    • J
      mac80211: generalise work handling · af6b6374
      Johannes Berg 提交于
      In order to use auth/assoc for different purposes
      other than MLME, it needs to be split up. For other
      purposes, a generic work handling (potentially on
      another channel) will be useful.
      
      To achieve that, this patch moves much of the MLME
      work handling out of mlme into a new work API. The
      API can currently handle probing a specific AP,
      authentication and association. The MLME previously
      handled probe/authentication as one step and will
      continue to do so, but they are separate in the new
      work handling.
      
      Work items are RCU-managed to be able to check for
      existence of an item for a specific frame in the RX
      path, but they can be re-used which the MLME right
      now will do for its combined probe/auth step.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      af6b6374
    • J
      mac80211: add ieee80211_sdata_running · 9607e6b6
      Johannes Berg 提交于
      Instead of always using netif_running(sdata->dev)
      use ieee80211_sdata_running(sdata) now which is
      just an inline containing netif_running() for now.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9607e6b6
  14. 23 12月, 2009 1 次提交
  15. 22 12月, 2009 4 次提交
  16. 11 12月, 2009 1 次提交
  17. 05 12月, 2009 1 次提交
  18. 30 11月, 2009 1 次提交
  19. 29 11月, 2009 3 次提交
  20. 20 11月, 2009 1 次提交
    • J
      cfg80211: introduce capability for 4addr mode · 9bc383de
      Johannes Berg 提交于
      It's very likely that not many devices will support
      four-address mode in station or AP mode so introduce
      capability bits for both modes, set them in mac80211
      and check them when userspace tries to use the mode.
      Also, keep track of 4addr in cfg80211 (wireless_dev)
      and not in mac80211 any more. mac80211 can also be
      improved for the VLAN case by not looking at the
      4addr flag but maintaining the station pointer for
      it correctly. However, keep track of use_4addr for
      station mode in mac80211 to avoid all the derefs.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9bc383de
  21. 19 11月, 2009 5 次提交
  22. 14 11月, 2009 1 次提交