Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 236728
b: refs/heads/master
c: 8b3f461
h: refs/heads/master
v: v3
  • Loading branch information
Felix Fietkau authored and John W. Linville committed Jan 19, 2011
1 parent c287e99 commit 9a54dfd
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2ed72229d60fc6f3ac9941b75d1e1522b08a975a
refs/heads/master: 8b3f4616d40a2ad19dd14af40b73f56860c812ea
13 changes: 12 additions & 1 deletion trunk/drivers/net/wireless/ath/ath9k/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,9 @@ int ath_set_channel(struct ath_softc *sc, struct ieee80211_hw *hw,
if (!ath_stoprecv(sc))
stopped = false;

if (!ath9k_hw_check_alive(ah))
stopped = false;

/* XXX: do not flush receive queue here. We don't want
* to flush data frames already in queue because of
* changing channel. */
Expand Down Expand Up @@ -602,7 +605,15 @@ void ath9k_tasklet(unsigned long data)

spin_lock(&sc->sc_pcu_lock);

if (!ath9k_hw_check_alive(ah))
/*
* Only run the baseband hang check if beacons stop working in AP or
* IBSS mode, because it has a high false positive rate. For station
* mode it should not be necessary, since the upper layers will detect
* this through a beacon miss automatically and the following channel
* change will trigger a hardware reset anyway
*/
if (ath9k_hw_numtxpending(ah, sc->beacon.beaconq) != 0 &&
!ath9k_hw_check_alive(ah))
ieee80211_queue_work(sc->hw, &sc->hw_check_work);

if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
Expand Down

0 comments on commit 9a54dfd

Please sign in to comment.