• Rajkumar Manoharan's avatar
    ath9k: Fix locking issue during tx completion · f6b4e4d4
    Rajkumar Manoharan authored
    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: default avatarRajkumar Manoharan <rmanohar@qca.qualcomm.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    f6b4e4d4
main.c 60 KB