1. 17 9月, 2011 2 次提交
  2. 15 9月, 2011 2 次提交
  3. 14 9月, 2011 1 次提交
  4. 31 8月, 2011 4 次提交
  5. 30 8月, 2011 1 次提交
  6. 26 8月, 2011 1 次提交
  7. 25 8月, 2011 2 次提交
  8. 13 8月, 2011 1 次提交
  9. 10 8月, 2011 1 次提交
  10. 19 7月, 2011 1 次提交
    • R
      ath9k: Fix sparse warnings · 5479de6e
      Rajkumar Manoharan 提交于
      drivers/net/wireless/ath/ath9k/init.c:199:21: warning: context imbalance
      in 'ath9k_reg_rmw' - different lock contexts for basic block
      drivers/net/wireless/ath/ath9k/xmit.c:1175:31: warning: context
      imbalance in 'ath_drain_txq_list' - unexpected unlock
      drivers/net/wireless/ath/ath9k/xmit.c:2047:23: warning: context
      imbalance in 'ath_tx_process_buffer' - unexpected unlock
      drivers/net/wireless/ath/ath9k/ar9003_eeprom.c:3041:24: warning: cast to
      restricted __le32
      Signed-off-by: NRajkumar Manoharan <rmanohar@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5479de6e
  11. 06 7月, 2011 1 次提交
  12. 28 6月, 2011 1 次提交
    • R
      ath9k: Fix locking issue during tx completion · f6b4e4d4
      Rajkumar Manoharan 提交于
      The received tx status of aggregated frame without BlockAck may
      cause deaf state in AR5416 cards. So the driver does a reset to
      recover. When this happens, we release the pcu_lock before doing
      a reset as ath_rest acquires pcu_lock. This is ugly and also not
      atomic. Fixing this addresses the TX DMA failure also.
      
      ath_tx_complete_aggr can be called from different paths which
      takes different variants of spin_lock. This patch also addresses
      the following warning.
      
      WARNING: at kernel/timer.c:1011 del_timer_sync+0x4e/0x50()
      Call Trace:
       <IRQ>  [<ffffffff8104be3a>] warn_slowpath_common+0x7a/0xb0
       [<ffffffff8104be85>] warn_slowpath_null+0x15/0x20
       [<ffffffff8105915e>] del_timer_sync+0x4e/0x50
       [<ffffffffa03726be>] ath_reset+0x3e/0x210 [ath9k]
       [<ffffffff8135cdaf>] ? _raw_spin_unlock_bh+0x1f/0x30
       [<ffffffffa037760a>] ath_tx_complete_aggr.isra.26+0x54a/0xa40 [ath9k]
      Signed-off-by: NRajkumar Manoharan <rmanohar@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f6b4e4d4
  13. 22 6月, 2011 1 次提交
    • A
      net: remove mm.h inclusion from netdevice.h · b7f080cf
      Alexey Dobriyan 提交于
      Remove linux/mm.h inclusion from netdevice.h -- it's unused (I've checked manually).
      
      To prevent mm.h inclusion via other channels also extract "enum dma_data_direction"
      definition into separate header. This tiny piece is what gluing netdevice.h with mm.h
      via "netdevice.h => dmaengine.h => dma-mapping.h => scatterlist.h => mm.h".
      Removal of mm.h from scatterlist.h was tried and was found not feasible
      on most archs, so the link was cutoff earlier.
      
      Hope people are OK with tiny include file.
      
      Note, that mm_types.h is still dragged in, but it is a separate story.
      Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b7f080cf
  14. 02 6月, 2011 1 次提交
    • F
      ath9k: unify edma and non-edma tx code, improve tx fifo handling · fce041be
      Felix Fietkau 提交于
      EDMA based chips (AR9380+) have 8 Tx FIFO slots, which are used to fix the
      tx queue start/stop race conditions which have to be worked around for
      earlier chips by keeping the last descriptor in the queue. The current code
      stores all frames that do not fit onto the 8 FIFO slots in a separate
      list. Whenever a FIFO slot is freed up, the next frame (or A-MPDU) from the
      pending queue gets moved to that slot.
      
      This process is not only inefficient, but also unnecessary. The code can
      be improved visibly by keeping the pending queue fully linked, and moving
      the contents of the entire queue to a FIFO slot as it becomes available.
      
      This patch makes the necessary changes for that and also merges some code
      that was duplicated for EDMA vs non-EDMA. It changes txq->axq_link to point
      to the last descriptor instead of the link pointer, so that
      ath9k_hw_set_desc_link can be used, which works on all chips.
      
      With this patch, a small performance increase for non-aggregated traffic
      was observed on AR9380 based embedded hardware.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      fce041be
  15. 20 5月, 2011 1 次提交
  16. 12 5月, 2011 1 次提交
  17. 06 5月, 2011 1 次提交
  18. 26 4月, 2011 1 次提交
  19. 20 4月, 2011 2 次提交
    • F
      ath9k: assign keycache slots to unencrypted stations · 93ae2dd2
      Felix Fietkau 提交于
      Frame filtering relies on having a valid destination index (keycache slot),
      to keep track of the destination. Assigning a keycache slot (configured
      to unencrypted, with no key data attached) improves powersave handling in
      AP mode with no encryption.
      The dummy keycache entry for a station is cleared, when a real key gets
      added.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      93ae2dd2
    • F
      ath9k: fix powersave frame filtering/buffering in AP mode · 5519541d
      Felix Fietkau 提交于
      This patch fixes a long standing issue of pending packets in the queue being
      sent (and retransmitted many times) to sleeping stations.
      This was made worse by aggregation through driver-internal retransmitting
      of A-MDPU subframes.
      Previously the hardware tx filter was cleared unconditionally for every
      single packet - with this patch it uses the IEEE80211_TX_CTL_CLEAR_PS_FILT
      for unaggregated frames.
      A sta_notify driver op is added to stop aggregation for stations when they
      enter powersave mode. Subframes stay buffered inside the driver, to ensure
      that the BlockAck window keeps a sane state.
      Since the driver uses software aggregation, the clearing of the tx filter
      needs to be handled by the driver instead of mac80211 for aggregated frames.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5519541d
  20. 31 3月, 2011 3 次提交
  21. 22 3月, 2011 1 次提交
    • M
      ath9k: Fix kernel panic in AR2427 · 61e1b0b0
      Mohammed Shafi Shajakhan 提交于
      Kernel panic occurs just after AR2427 establishes connection with AP.
      Unless aggregation is enabled we don't initialize the TID structure.
      Thus accesing the elements of the TID structure when aggregation is
      disabled, leads to NULL pointer dereferencing.
      
      [  191.320358] Call Trace:
      [  191.320364]  [<fd250ea7>] ? ath9k_tx+0xa7/0x200 [ath9k]
      [  191.320376]  [<fd1ec7fc>] ? __ieee80211_tx+0x5c/0x1e0 [mac80211]
      [  191.320386]  [<fd1edd2b>] ? ieee80211_tx+0x7b/0x90 [mac80211]
      [  191.320395]  [<fd1edddd>] ? ieee80211_xmit+0x9d/0x1d0 [mac80211]
      [  191.320401]  [<c014218f>] ? wake_up_state+0xf/0x20
      [  191.320405]  [<c015dbc8>] ? signal_wake_up+0x28/0x40
      [  191.320410]  [<c012a578>] ? default_spin_lock_flags+0x8/0x10
      [  191.320420]  [<fd1ee308>] ? ieee80211_subif_start_xmit+0x2e8/0x7c0
      [mac80211]
      [  191.320425]  [<c058f905>] ? do_page_fault+0x295/0x3a0
      [  191.320431]  [<c04c4a3d>] ? dev_hard_start_xmit+0x1ad/0x210
      [  191.320436]  [<c04d96b5>] ? sch_direct_xmit+0x105/0x170
      [  191.320445]  [<fd1f161a>] ? get_sta_flags+0x2a/0x40 [mac80211]
      [  191.320449]  [<c04c780f>] ? dev_queue_xmit+0x37f/0x4b0
      [  191.320452]  [<c04d75b0>] ? eth_header+0x0/0xb0
      [  191.320456]  [<c04cc479>] ? neigh_resolve_output+0xe9/0x310
      [  191.320461]  [<c053d295>] ? ip6_output_finish+0xa5/0x110
      [  191.320464]  [<c053e354>] ? ip6_output2+0x134/0x250
      [  191.320468]  [<c053f7dd>] ? ip6_output+0x6d/0x100
      [  191.320471]  [<c0559665>] ? mld_sendpack+0x395/0x3e0
      [  191.320475]  [<c0557f81>] ? add_grhead+0x31/0xa0
      [  191.320478]  [<c055a83c>] ? mld_send_cr+0x1bc/0x2b0
      [  191.320482]  [<c01535d9>] ? irq_exit+0x39/0x70
      [  191.320485]  [<c055a940>] ? mld_ifc_timer_expire+0x10/0x40
      [  191.320489]  [<c015b92e>] ? run_timer_softirq+0x13e/0x2c0
      [  191.320493]  [<c0103a30>] ? common_interrupt+0x30/0x40
      [  191.320498]  [<c055a930>] ? mld_ifc_timer_expire+0x0/0x40
      [  191.320502]  [<c0153358>] ? __do_softirq+0x98/0x1b0
      [  191.320506]  [<c01534b5>] ? do_softirq+0x45/0x50
      [  191.320509]  [<c0153605>] ? irq_exit+0x65/0x70
      [  191.320513]  [<c05917dc>] ? smp_apic_timer_interrupt+0x5c/0x8b
      [  191.320516]  [<c0103df1>] ? apic_timer_interrupt+0x31/0x40
      [  191.320521]  [<c016007b>] ? k_getrusage+0x12b/0x2f0
      [  191.320525]  [<c039e384>] ? acpi_idle_enter_simple+0x117/0x148
      [  191.320529]  [<c04a20da>] ? cpuidle_idle_call+0x7a/0x100
      [  191.320532]  [<c01021d4>] ? cpu_idle+0x94/0xd0
      [  191.320536]  [<c057ab88>] ? rest_init+0x58/0x60
      [  191.320541]  [<c07a58ec>] ? start_kernel+0x351/0x357
      [  191.320544]  [<c07a53c7>] ? unknown_bootoption+0x0/0x19e
      [  191.320548]  [<c07a50aa>] ? i386_start_kernel+0xaa/0xb1
      [  191.320550] Code: 03 66 3d 00 03 0f 84 7c 02 00 00 83 c3 18 0f b6 03
      8b 4d e0 89 c3 83 e3 0f 6b c3 48 89 5d d8 8d 04 06 8d 50 0c 89 55 d0 8b
      40 20 <8b> 00 3b 01 0f 85 8e 02 00 00 f6 47 20 40 0f 84 29 ff ff ff 8b
      [  191.320634] EIP: [<fd2586d4>] ath_tx_start+0x474/0x770 [ath9k] SS:ESP
      0068:c0761a90
      [  191.320642] CR2: 0000000000000000
      [  191.320647] ---[ end trace 9296ef23b9076ece ]---
      [  191.320650] Kernel panic - not syncing: Fatal exception in interrupt
      
      Cc: stable@kernel.org
      Signed-off-by: NMohammed Shafi Shajakhan <mshajakhan@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      61e1b0b0
  22. 15 3月, 2011 3 次提交
  23. 22 2月, 2011 1 次提交
  24. 10 2月, 2011 1 次提交
  25. 05 2月, 2011 1 次提交
    • M
      ath9k: Fix possible double free of PAPRD skb's · 9cf04dcc
      Mohammed Shafi Shajakhan 提交于
      This patch reverts the following commit
      ath9k: remove bfs_paprd_timestamp from struct ath_buf_state
      
      Under high interference/noisy environment conditions where PAPRD frames
      fails heavily introduces a possibility of double freeing skb's and causes
      kernel panic after some time.This patch reverts back to the original approach
      of using paprd_timestamp before freeing the PAPRD frame skb's
      
      [  194.193705] Pid: 0, comm: swapper Tainted: G      D WC
      2.6.35-22-generic #33-Ubuntu
      [  194.193712] Call Trace:
      [  194.193722]  [<c05c6468>] ? printk+0x2d/0x35
      [  194.193732]  [<c05c63c3>] panic+0x5a/0xd2
      [  194.193741]  [<c05ca3ed>] oops_end+0xcd/0xd0
      [  194.193750]  [<c0105f74>] die+0x54/0x80
      [  194.193758]  [<c05c9a16>] do_trap+0x96/0xc0
      [  194.193837]  [<c0103fb0>] ? do_invalid_op+0x0/0xa0
      [  194.193846]  [<c010403b>] do_invalid_op+0x8b/0xa0
      [  194.193856]  [<c020bd4c>] ? kfree+0xec/0xf0
      [  194.193866]  [<c012ce18>] ? default_spin_lock_flags+0x8/0x10
      [  194.193877]  [<c01de47a>] ? free_one_page+0x12a/0x2d0
      [  194.193888]  [<c01e04dc>] ? __free_pages+0x1c/0x40
      [  194.193897]  [<c05c97a7>] error_code+0x73/0x78
      [  194.193906]  [<c020bd4c>] ? kfree+0xec/0xf0
      [  194.193915]  [<c04ecdd0>] ? skb_release_data+0x70/0xa0
      [  194.193924]  [<c04ecdd0>] skb_release_data+0x70/0xa0
      [  194.193933]  [<c04ec997>] __kfree_skb+0x17/0x90
      [  194.193941]  [<c04eca31>] consume_skb+0x21/0x40
      [  194.193964]  [<f85e0b70>] ieee80211_tx_status+0x760/0x860 [mac80211]
      [  194.193979]  [<f85caddf>] ath_tx_complete_buf+0x1bf/0x2c0 [ath9k]
      [  194.193988]  [<c05c8b9f>] ? _raw_spin_lock_irqsave+0x2f/0x50
      [  194.193997]  [<c04ec40e>] ? skb_queue_tail+0x3e/0x50
      [  194.194010]  [<f85cc803>] ath_tx_complete_aggr+0x823/0x940 [ath9k]
      [  194.194021]  [<c0108a28>] ? sched_clock+0x8/0x10
      [  194.194030]  [<c016bf14>] ? sched_clock_local+0xa4/0x180
      [  194.194040]  [<c0139f57>] ? enqueue_sleeper+0x1e7/0x2b0
      [  194.194051]  [<c013a194>] ? enqueue_entity+0x174/0x200
      [  194.194064]  [<f85ce83d>] ath_tx_edma_tasklet+0x2bd/0x3b0 [ath9k]
      [  194.194074]  [<c05c8b9f>] ? _raw_spin_lock_irqsave+0x2f/0x50
      [  194.194088]  [<f85c7b9f>] ath9k_tasklet+0x9f/0x190 [ath9k]
      [  194.194097]  [<c01505d7>] tasklet_action+0xa7/0xb0
      [  194.194107]  [<c015127c>] __do_softirq+0x9c/0x1b0
      [  194.194117]  [<c01a7f64>] ? irq_to_desc+0x14/0x20
      [  194.194126]  [<c0124fc4>] ? ack_apic_level+0x64/0x1f0
      [  194.194136]  [<c01513d5>] do_softirq+0x45/0x50
      [  194.194145]  [<c0151545>] irq_exit+0x65/0x70
      [  194.194153]  [<c05cf665>] do_IRQ+0x55/0xc0
      [  194.194162]  [<c016a6c7>] ? hrtimer_start+0x27/0x30
      [  194.194171]  [<c0103630>] common_interrupt+0x30/0x38
      [  194.194181]  [<c012c21a>] ? native_safe_halt+0xa/0x10
      [  194.194268]  [<c010a2f9>] default_idle+0x49/0xb0
      [  194.194277]  [<c0101fcc>] cpu_idle+0x8c/0xd0
      [  194.194286]  [<c05b2431>] rest_init+0x71/0x80
      [  194.194295]  [<c081981a>] start_kernel+0x36e/0x374
      [  194.194305]  [<c08199dd>] ? pass_all_bootoptions+0x0/0xa
      [  194.194314]  [<c08190d7>] i386_start_kernel+0xd7/0xdf
      [  194.194364] panic occurred, switching back to text console
      Signed-off-by: NMohammed Shafi Shajakhan <mshajakhan@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9cf04dcc
  26. 29 1月, 2011 4 次提交