1. 17 9月, 2010 4 次提交
    • L
      ath9k: fix enabling ANI / tx monitor after bg scan · 48a6a468
      Luis R. Rodriguez 提交于
      ath9k's entire logic with SC_OP_SCANNING is incorrect due to the
      way mac80211 currently implements the scan complete callback and
      we handle it in ath9k. This patch removes the flag completely in
      preference for the SC_OP_OFFCHANNEL which is really what we wanted.
      
      The scanning flag was used to ensure we reset ANI to the old values
      when we go back to the home channel, but if we are offchannel we
      use some defaults. The flag was also used to re-enable the TX monitor.
      
      Without this patch we simply never re-enabled ANI and the TX monitor
      after going offchannel. This means that after one background
      scan we are prone to noise issues and if we had a TX hang we would
      not recover. To get this to work properly we must enable ANI after
      we have configured the beacon timers, otherwise hardware acts really
      oddly.
      
      This patch has stable fixes which apply down to [2.6.36+], there
      *may* be a to fix this on older kernels but requires a bit of
      work since this patch relies on the new mac80211 flag
      IEEE80211_CONF_OFFCHANNEL which was introduced as of 2.6.36.
      
      Cc: stable@kernel.org
      Cc: Paul Stewart <pstew@google.com>
      Cc: Amod Bodas <amod.bodas@atheros.com>
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      48a6a468
    • L
      ath9k: fix power save race conditions · 8ab2cd09
      Luis R. Rodriguez 提交于
      ath9k has a race on putting the chip into network sleep and
      having registers read from hardware. The race occurs because
      although ath9k_ps_restore() locks its own callers it makes use
      of some variables which get altered in the driver at different
      code paths. The variables are the ps_enabled and ps_flags.
      
      This is easily reprodicible in large network environments when
      roaming with the wpa_supplicant simple bgscan. You'd get some
      0xdeadbeef read out on certain registers such as:
      
      ath: timeout (100000 us) on reg 0x806c: 0xdeadbeef & 0x01f00000 != 0x00000000
      ath: RX failed to go idle in 10 ms RXSM=0xdeadbeef
      
      ath: timeout (100000 us) on reg 0x7000: 0xdeadbeef & 0x00000003 != 0x00000000
      ath: Chip reset failed
      
      The fix is to protect the ath9k_config(hw, IEEE80211_CONF_CHANGE_PS)
      calls with a spin_lock_irqsave() which will disable contendors for
      these variables from interrupt context, timers, re-entry from mac80211
      on the same callback, and most importantly from ath9k_ps_restore()
      which is the only call which will put the device into network sleep.
      
      There are quite a few threads and bug reports on these a few of them are:
      
      https://bugs.launchpad.net/ubuntu/karmic/+source/linux/+bug/407040
      http://code.google.com/p/chromium-os/issues/detail?id=5709
      http://code.google.com/p/chromium-os/issues/detail?id=5943
      
      Stable fixes apply to [2.6.32+]
      
      Cc: stable@kernel.org
      Cc: Paul Stewart <pstew@google.com>
      Cc: Amod Bodas <amod.bodas@atheros.com>
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8ab2cd09
    • J
      ath9k: make ath_ant_div_conf_fast_divbias static · 9bad82b8
      John W. Linville 提交于
        CHECK   drivers/net/wireless/ath/ath9k/recv.c
      drivers/net/wireless/ath/ath9k/recv.c:1341:6: warning: symbol 'ath_ant_div_conf_fast_divbias' was not declared. Should it be static?
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9bad82b8
    • B
      ath9k: calcrxfilter should take multiple VIFs into account. · cfda6695
      Ben Greear 提交于
      When there is more than one VIF, listen for all beacons
      and ensure ATH9K_RX_FILTER_MCAST_BCAST_ALL is set.
      Signed-off-by: NBen Greear <greearb@candelatech.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      cfda6695
  2. 15 9月, 2010 1 次提交
  3. 08 9月, 2010 1 次提交
  4. 01 9月, 2010 1 次提交
  5. 05 8月, 2010 1 次提交
    • J
      ath9k: fix erased ieee80211_rx_status.mactime · c8f3b721
      Jan Friedrich 提交于
      ath9k_rx_skb_preprocess nulls rxs and the mactime is never set again -
      mactime is always 0. This causes problems in IBSS mode.
      
      ieee80211_rx_bss_info uses mactime to decide if an IBSS merge is needed.
      Without this patch the merge is triggered by each beacon received.
      
      This can be recognized by the "beacon TSF higher than local TSF - IBSS
      merge with BSSID" log message accompanying each beacon.
      
      This problem was not completely fixed in commit
      a6d2055b and is not a stable kernel fix.
      It is solely intended for wireless-testing.
      Signed-off-by: NJan Friedrich <jft@dev2day.de>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c8f3b721
  6. 27 7月, 2010 1 次提交
  7. 15 6月, 2010 3 次提交
  8. 05 6月, 2010 1 次提交
  9. 03 6月, 2010 5 次提交
  10. 25 5月, 2010 1 次提交
  11. 12 5月, 2010 2 次提交
  12. 17 4月, 2010 3 次提交
  13. 01 4月, 2010 2 次提交
  14. 02 2月, 2010 1 次提交
  15. 13 1月, 2010 2 次提交
  16. 12 11月, 2009 11 次提交