ath9k: Fix phyerr debug statistics
authorSujith Manoharan <c_manoha@qca.qualcomm.com>
Thu, 16 Feb 2012 06:22:25 +0000 (11:52 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 27 Feb 2012 19:05:43 +0000 (14:05 -0500)
Validate the phyerr value against the max. size of the
statistics array properly.

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

index 5a838fc28b611562455998737509bb9d0ba92262..228c18189a3a38979e8eb01716643b6aa64126c0 100644 (file)
@@ -987,8 +987,6 @@ void ath_debug_stat_rx(struct ath_softc *sc, struct ath_rx_status *rs)
 #define RX_SAMP_DBG(c) (sc->debug.bb_mac_samp[sc->debug.sampidx].rs\
                        [sc->debug.rsidx].c)
 
-       u32 phyerr;
-
        RX_STAT_INC(rx_pkts_all);
        sc->debug.stats.rxstats.rx_bytes_all += rs->rs_datalen;
 
@@ -1007,8 +1005,8 @@ void ath_debug_stat_rx(struct ath_softc *sc, struct ath_rx_status *rs)
 
        if (rs->rs_status & ATH9K_RXERR_PHY) {
                RX_STAT_INC(phy_err);
-               phyerr = rs->rs_phyerr & 0x24;
-               RX_PHY_ERR_INC(phyerr);
+               if (rs->rs_phyerr < ATH9K_PHYERR_MAX)
+                       RX_PHY_ERR_INC(rs->rs_phyerr);
        }
 
        sc->debug.stats.rxstats.rs_rssi_ctl0 = rs->rs_rssi_ctl0;