ath9k: Fix mactime from being clobbered in rx_status
authorAshok Nagarajan <ashok@cozybit.com>
Sat, 10 Mar 2012 02:57:39 +0000 (18:57 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 12 Mar 2012 18:21:52 +0000 (14:21 -0400)
mactime was being overwritten by the function ath9k_rx_skb_preprocess. Fixed by
memsetting rx_status in ath_rx_tasklet.

Signed-off-by: Ashok Nagarajan <ashok@cozybit.com>
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/recv.c

index 1b1b279..f4ae3ba 100644 (file)
@@ -982,8 +982,6 @@ static int ath9k_rx_skb_preprocess(struct ath_common *common,
 {
        struct ath_hw *ah = common->ah;
 
-       memset(rx_status, 0, sizeof(struct ieee80211_rx_status));
-
        /*
         * everything but the rate is checked here, the rate check is done
         * separately to avoid doing two lookups for a rate for each frame.
@@ -1841,6 +1839,8 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
                if (sc->sc_flags & SC_OP_RXFLUSH)
                        goto requeue_drop_frag;
 
+               memset(rxs, 0, sizeof(struct ieee80211_rx_status));
+
                rxs->mactime = (tsf & ~0xffffffffULL) | rs.rs_tstamp;
                if (rs.rs_tstamp > tsf_lower &&
                    unlikely(rs.rs_tstamp - tsf_lower > 0x10000000))