• L
    ath9k: Fix power save count imbalance on ath_radio_enable() · c2731b81
    Luis R. Rodriguez 提交于
    Upon a failure we never call ath9k_ps_restore() on ath_radio_enable(),
    this will throw off the sc->ps_usecount. When the sc->ps_usecount
    is > 0 we never put the chip to full sleep. This drains battery,
    and will also make the chip fail upon resume with:
    
    ath: Starting driver with initial channel: 5745 MHz
    ath: timeout (100000 us) on reg 0x7000: 0xdeadbeef & 0x00000003 != 0x00000000
    
    This would make the chip useless upon resume.
    
    I cannot prove this can happen but in theory it is so best to
    avoid this race completely and not have users complain about
    a broken device after resume.
    
    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>
    c2731b81
main.c 53.1 KB