1. 17 4月, 2010 1 次提交
  2. 06 1月, 2010 1 次提交
  3. 22 12月, 2009 6 次提交
  4. 05 12月, 2009 1 次提交
  5. 29 11月, 2009 1 次提交
  6. 20 11月, 2009 1 次提交
    • J
      mac80211: request TX status where needed · 7351c6bd
      Johannes Berg 提交于
      Right now all frames mac80211 hands to the driver
      have the IEEE80211_TX_CTL_REQ_TX_STATUS flag set to
      request TX status. This isn't really necessary, only
      the injected frames need TX status (the latter for
      hostapd) so move setting this flag.
      
      The rate control algorithms also need TX status, but
      they don't require it.
      
      Also, rt2x00 uses that bit for its own purposes and
      seems to require it being set for all frames, but
      that can be fixed in rt2x00.
      
      This doesn't really change anything for any drivers
      but in the future drivers using hw-rate control may
      opt to not report TX status for frames that don't
      have the IEEE80211_TX_CTL_REQ_TX_STATUS flag set.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Acked-by: Ivo van Doorn <IvDoorn@gmail.com> [rt2x00 bits]
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      7351c6bd
  7. 12 11月, 2009 1 次提交
  8. 01 9月, 2009 1 次提交
    • I
      rt2x00: Reorganize padding & L2 padding · daee6c09
      Ivo van Doorn 提交于
      The old function rt2x00queue_payload_align() handled
      both adding and removing L2 padding and some basic
      frame alignment. The entire function was being abused
      because it had multiple functions and the header length
      argument was somtimes used to align the header instead
      of the payload.
      
      Additionally there was a bug when inserting L2 padding
      that only the payload was aligned but not the header. This
      happens when the header wasn't aligned properly by mac80211,
      but rt2x00lib only moves the payload.
      
      A secondary problem was that when removing L2 padding during
      TXdone or RX the skb wasn't resized to the proper size.
      
      Split the function into seperate functions each handling
      its task as it should.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      daee6c09
  9. 14 8月, 2009 3 次提交
  10. 07 5月, 2009 3 次提交
  11. 10 2月, 2009 1 次提交
  12. 30 1月, 2009 4 次提交
  13. 23 1月, 2009 1 次提交
  14. 13 1月, 2009 1 次提交
  15. 05 12月, 2008 3 次提交
  16. 26 11月, 2008 1 次提交
    • I
      rt2x00: Fix TX failure path · 0e3de998
      Ivo van Doorn 提交于
      The callback function write_tx_data() can only fail
      when our ENTRY_OWNER_DEVICE_DATA flag on a queue entry
      failed to determine the entry was not available and
      it is in fact still owned by the hardware.
      This means that if that function fails the queue
      must be stopped in mac80211.
      
      When rt2x00queue_get_queue() returns NULL in the TX
      path, it means mac80211 has passed us an invalid queue,
      although this should be impossible, it shouldn't hurt
      if we send mac80211 a signal to stop the queue either.
      
      Both issues can simply be resolved by removing their
      manual failure handler and making them use the failure path
      provided in rt2x00mac_tx().
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0e3de998
  17. 22 11月, 2008 2 次提交
  18. 01 11月, 2008 2 次提交
  19. 15 10月, 2008 1 次提交
  20. 07 10月, 2008 1 次提交
  21. 16 9月, 2008 1 次提交
    • J
      mac80211: fix virtual interfaces vs. injection · 25d834e1
      Johannes Berg 提交于
      Currently, virtual interface pointers passed to drivers might be
      from monitor interfaces and as such completely uninitialised
      because we do not tell the driver about monitor interfaces when
      those are created. Instead of passing them, we should therefore
      indicate to the driver that there is no information; do that by
      passing a NULL value and adjust drivers to cope with it.
      
      As a result, some mac80211 API functions also need to cope with
      a NULL vif pointer so drivers can still call them unconditionally.
      
      Also, when injecting frames we really don't want to pass NULL all
      the time, if we know we are the source address of a frame and have
      a local interface for that address, we can to use that interface.
      This also helps with processing the frame correctly for that
      interface which will help the 802.11w implementation. It's not
      entirely correct for VLANs or WDS interfaces because there the MAC
      address isn't unique, but it's already a lot better than what we
      do now.
      
      Finally, when injecting without a matching local interface, don't
      assign sequence numbers at all.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      25d834e1
  22. 30 8月, 2008 3 次提交