ath9k: Fix phy error handling for DFS
authorSujith Manoharan <c_manoha@qca.qualcomm.com>
Wed, 14 Aug 2013 03:41:10 +0000 (09:11 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 15 Aug 2013 20:08:01 +0000 (16:08 -0400)
Since the DFS code appears to process the phy errors
ATH9K_PHYERR_RADAR and ATH9K_PHYERR_FALSE_RADAR_EXT,
check for the correct phyerr status in the main RX
tasklet routine.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/recv.c

index 0c23053a49f60c9b1d79bfc25e9df7296104283a..83b3fc57cabb0e5bcd5a4b0360b495f81724dfa2 100644 (file)
@@ -1256,10 +1256,9 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
                    unlikely(tsf_lower - rs.rs_tstamp > 0x10000000))
                        rxs->mactime += 0x100000000ULL;
 
-               if (rs.rs_phyerr == ATH9K_PHYERR_RADAR)
+               if (rs.rs_status & ATH9K_RXERR_PHY) {
                        ath9k_dfs_process_phyerr(sc, hdr, &rs, rxs->mactime);
 
-               if (rs.rs_status & ATH9K_RXERR_PHY) {
                        if (ath_process_fft(sc, hdr, &rs, rxs->mactime)) {
                                RX_STAT_INC(rx_spectral);
                                goto requeue_drop_frag;