|
@@ -2369,6 +2369,9 @@ ath5k_tx_complete_poll_work(struct work_struct *work)
|
|
|
int i;
|
|
|
bool needreset = false;
|
|
|
|
|
|
+ if (!test_bit(ATH_STAT_STARTED, ah->status))
|
|
|
+ return;
|
|
|
+
|
|
|
mutex_lock(&ah->lock);
|
|
|
|
|
|
for (i = 0; i < ARRAY_SIZE(ah->txqs); i++) {
|
|
@@ -2676,6 +2679,7 @@ done:
|
|
|
mmiowb();
|
|
|
mutex_unlock(&ah->lock);
|
|
|
|
|
|
+ set_bit(ATH_STAT_STARTED, ah->status);
|
|
|
ieee80211_queue_delayed_work(ah->hw, &ah->tx_complete_work,
|
|
|
msecs_to_jiffies(ATH5K_TX_COMPLETE_POLL_INT));
|
|
|
|
|
@@ -2737,6 +2741,7 @@ void ath5k_stop(struct ieee80211_hw *hw)
|
|
|
|
|
|
ath5k_stop_tasklets(ah);
|
|
|
|
|
|
+ clear_bit(ATH_STAT_STARTED, ah->status);
|
|
|
cancel_delayed_work_sync(&ah->tx_complete_work);
|
|
|
|
|
|
if (!ath5k_modparam_no_hw_rfkill_switch)
|