summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath/if_ath.c
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2011-06-06 21:38:39 +0000
committerattilio <attilio@FreeBSD.org>2011-06-06 21:38:39 +0000
commitfcefe479fe42ec2ebc4b56d9161b88a659dfb40b (patch)
tree7f8a8e666aaf8b4a8bd8609c5ec45698db6451d5 /sys/dev/ath/if_ath.c
parent8e66ca1ff16b21df31a40fa743f8df3844507305 (diff)
parentc8e197a2037e17686f997232419f8b02d1e61ffc (diff)
downloadFreeBSD-src-fcefe479fe42ec2ebc4b56d9161b88a659dfb40b.zip
FreeBSD-src-fcefe479fe42ec2ebc4b56d9161b88a659dfb40b.tar.gz
MFC
Diffstat (limited to 'sys/dev/ath/if_ath.c')
-rw-r--r--sys/dev/ath/if_ath.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index 451bbeaf..6c7b0e7 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -3473,7 +3473,15 @@ ath_rx_proc(void *arg, int npending)
if (rs->rs_status & HAL_RXERR_PHY) {
sc->sc_stats.ast_rx_phyerr++;
/* Process DFS radar events */
- ath_dfs_process_phy_err(sc, mtod(m, char *), tsf, rs);
+ if ((rs->rs_phyerr == HAL_PHYERR_RADAR) ||
+ (rs->rs_phyerr == HAL_PHYERR_FALSE_RADAR_EXT)) {
+ /* Since we're touching the frame data, sync it */
+ bus_dmamap_sync(sc->sc_dmat,
+ bf->bf_dmamap,
+ BUS_DMASYNC_POSTREAD);
+ /* Now pass it to the radar processing code */
+ ath_dfs_process_phy_err(sc, mtod(m, char *), tsf, rs);
+ }
/* Be suitably paranoid about receiving phy errors out of the stats array bounds */
if (rs->rs_phyerr < 64)
OpenPOWER on IntegriCloud