1. 27 9月, 2014 3 次提交
  2. 17 9月, 2014 1 次提交
  3. 29 8月, 2014 1 次提交
  4. 24 7月, 2014 1 次提交
  5. 19 7月, 2014 1 次提交
    • F
      ath9k: fix pending tx frames accounting · d954cd77
      Felix Fietkau 提交于
      Packets originally buffered for the regular hardware tx queues can end
      up being transmitted through the U-APSD queue (via PS-Poll or U-APSD).
      When packets are dropped due to retransmit failures, the pending frames
      counter is not always updated properly.
      Fix this by keeping track of the queue that a frame was accounted for in
      the ath_frame_info struct, and using that on completion to decide
      whether the counter should be updated.
      This fixes some spurious transmit queue hangs.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d954cd77
  6. 20 6月, 2014 7 次提交
  7. 30 4月, 2014 1 次提交
    • F
      ath9k: remove tid->paused flag · 62e54dbb
      Felix Fietkau 提交于
      There are some corner cases where the driver could get stuck with a full
      tid queue that is paused, leading to a software tx queue hang.
      
      Since the tx queueing rework, pausing per-tid queues on aggregation
      session setup is no longer necessary. The driver will assign sequence
      numbers to buffered frames when a new session is established, in order
      to get the correct starting sequence number.
      
      mac80211 prevents new frames from entering the queue during setup.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      62e54dbb
  8. 18 3月, 2014 1 次提交
  9. 15 3月, 2014 1 次提交
  10. 14 3月, 2014 1 次提交
  11. 04 3月, 2014 1 次提交
  12. 01 3月, 2014 1 次提交
  13. 25 2月, 2014 1 次提交
  14. 21 2月, 2014 1 次提交
    • S
      ath9k: protect tid->sched check · 21f8aaee
      Stanislaw Gruszka 提交于
      We check tid->sched without a lock taken on ath_tx_aggr_sleep(). That
      is race condition which can result of doing list_del(&tid->list) twice
      (second time with poisoned list node) and cause crash like shown below:
      
      [424271.637220] BUG: unable to handle kernel paging request at 00100104
      [424271.637328] IP: [<f90fc072>] ath_tx_aggr_sleep+0x62/0xe0 [ath9k]
      ...
      [424271.639953] Call Trace:
      [424271.639998]  [<f90f6900>] ? ath9k_get_survey+0x110/0x110 [ath9k]
      [424271.640083]  [<f90f6942>] ath9k_sta_notify+0x42/0x50 [ath9k]
      [424271.640177]  [<f809cfef>] sta_ps_start+0x8f/0x1c0 [mac80211]
      [424271.640258]  [<c10f730e>] ? free_compound_page+0x2e/0x40
      [424271.640346]  [<f809e915>] ieee80211_rx_handlers+0x9d5/0x2340 [mac80211]
      [424271.640437]  [<c112f048>] ? kmem_cache_free+0x1d8/0x1f0
      [424271.640510]  [<c1345a84>] ? kfree_skbmem+0x34/0x90
      [424271.640578]  [<c10fc23c>] ? put_page+0x2c/0x40
      [424271.640640]  [<c1345a84>] ? kfree_skbmem+0x34/0x90
      [424271.640706]  [<c1345a84>] ? kfree_skbmem+0x34/0x90
      [424271.640787]  [<f809dde3>] ? ieee80211_rx_handlers_result+0x73/0x1d0 [mac80211]
      [424271.640897]  [<f80a07a0>] ieee80211_prepare_and_rx_handle+0x520/0xad0 [mac80211]
      [424271.641009]  [<f809e22d>] ? ieee80211_rx_handlers+0x2ed/0x2340 [mac80211]
      [424271.641104]  [<c13846ce>] ? ip_output+0x7e/0xd0
      [424271.641182]  [<f80a1057>] ieee80211_rx+0x307/0x7c0 [mac80211]
      [424271.641266]  [<f90fa6ee>] ath_rx_tasklet+0x88e/0xf70 [ath9k]
      [424271.641358]  [<f80a0f2c>] ? ieee80211_rx+0x1dc/0x7c0 [mac80211]
      [424271.641445]  [<f90f82db>] ath9k_tasklet+0xcb/0x130 [ath9k]
      
      Bug report:
      https://bugzilla.kernel.org/show_bug.cgi?id=70551Reported-and-tested-by: NMax Sydorenko <maxim.stargazer@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      21f8aaee
  15. 13 2月, 2014 1 次提交
  16. 14 1月, 2014 1 次提交
  17. 04 1月, 2014 1 次提交
  18. 20 12月, 2013 1 次提交
  19. 10 12月, 2013 1 次提交
  20. 03 12月, 2013 2 次提交
  21. 19 10月, 2013 2 次提交
  22. 15 10月, 2013 2 次提交
  23. 01 10月, 2013 1 次提交
    • F
      ath9k: fix powersave response handling for BA session packets · f69727fd
      Felix Fietkau 提交于
      When a packet is passed from mac80211 to the driver with the
      IEEE80211_TX_CTL_PS_RESPONSE flag set, it bypasses the normal driver
      internal queueing and goes directly to the UAPSD queue.
      
      When that happens, packets that are part of a BlockAck session still
      need to be tracked as such inside the driver, otherwise it will create
      discrepancies in the receiver BA reorder window, causing traffic stalls.
      This only happens in AP mode with powersave-enabled clients.
      
      This patch fixes the regression introduced in the commit
      "ath9k: use software queues for un-aggregated data packets"
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f69727fd
  24. 27 9月, 2013 5 次提交
  25. 17 8月, 2013 1 次提交