Skip to content
  • Mohammed Shafi Shajakhan's avatar
    ath9k: Fix a warning due to a queued work during S3 state · 99aa55b6
    Mohammed Shafi Shajakhan authored
    
    
    during suspend/S3 state drv_flush is called from mac80211 irrespective of
    interface count. In ath9k we queue a work in ath9k_flush which we expect
    to be cancelled in the drv_stop call back. during suspend process mac80211
    calls drv_stop only when the interface count(local->count) is non-zero.
    unfortunately when the network manager is enabled, drv_flush is called
    while drv_stop is not called as local->count reaches '0'.
    	So fix this by simply checking for the device presence in the
    drv_flush call back in the driver before queueing work or anything else.
    this patch fixes the following WARNING
    
    	Call Trace:
    	[<c014c6e2>] warn_slowpath_common+0x72/0xa0
    	[<fc133f99>] ? ieee80211_can_queue_work+0x39/0x50 [mac80211]
    	[<fc133f99>] ? ieee80211_can_queue_work+0x39/0x50 [mac80211]
    	[<c014c75b>] warn_slowpath_fmt+0x2b/0x30
    	[<fc133f99>] ieee80211_can_queue_work+0x39/0x50 [mac80211]
    	[<fc134ed1>] ieee80211_queue_delayed_work+0x21/0x50 [mac80211]
    	[<fc1e5b22>] ath_tx_complete_poll_work+0xb2/0x100 [ath9k]
    	[<c016399e>] run_workqueue+0x8e/0x150
    	[<fc1e5a70>] ? ath_tx_complete_poll_work+0x0/0x100 [ath9k]
    	[<c0163ae4>] worker_thread+0x84/0xe0
    	[<c0167a60>] ? autoremove_wake_function+0x0/0x50
    	[<c0163a60>] ? worker_thread+0x0/0xe0
    	[<c01677d4>] kthread+0x74/0x80
    	[<c0167760>] ? kthread+0x0/0x80
    	[<c0104087>] kernel_thread_helper+0x7/0x10
    ---[ end trace 2aff81010df9215b ]---
    
    Signed-off-by: default avatarRajkumar Manoharan <rmanoharan@atheros.com>
    Signed-off-by: default avatarMohammed Shafi Shajakhan <mshajakhan@atheros.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    99aa55b6