• 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
ath9k.h 21.1 KB