1. 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
  2. 14 1月, 2014 1 次提交
  3. 04 1月, 2014 1 次提交
  4. 20 12月, 2013 1 次提交
  5. 10 12月, 2013 1 次提交
  6. 03 12月, 2013 2 次提交
  7. 19 10月, 2013 2 次提交
  8. 15 10月, 2013 2 次提交
  9. 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
  10. 27 9月, 2013 5 次提交
  11. 17 8月, 2013 1 次提交
  12. 16 8月, 2013 3 次提交
  13. 10 8月, 2013 11 次提交
  14. 23 7月, 2013 1 次提交
  15. 18 7月, 2013 1 次提交
  16. 25 6月, 2013 2 次提交
  17. 13 6月, 2013 3 次提交
  18. 23 5月, 2013 1 次提交
    • F
      ath9k: prevent aggregation session deadlocks · 08c96abd
      Felix Fietkau 提交于
      Waiting for all subframes of an existing aggregation session to drain
      before allowing mac80211 to start a new one is fragile and deadlocks
      caused by this behavior have been observed.
      
      Since mac80211 has proper synchronization for aggregation session
      start/stop handling, a better approach to session handling is to simply
      allow mac80211 to start a new session at any time. This requires
      changing the code to discard any packets outside of the BlockAck window
      in the A-MPDU software retry code.
      
      This patch implements the above and also simplifies the code.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      08c96abd