fix a small race condition in the madwifi queue handling
[openwrt-10.03/.git] / package / madwifi / patches / 310-noise_get.patch
index dec7217210644a9a82ad198244ad6149d6ae5d03..bbfd82dbb6a9371c04384923776c7320b5b90a2d 100644 (file)
@@ -1,24 +1,25 @@
-Index: madwifi-dfs-r3053/ath/if_ath.c
+Index: madwifi-trunk-r3280/ath/if_ath.c
 ===================================================================
---- madwifi-dfs-r3053.orig/ath/if_ath.c        2007-12-13 05:25:14.210435274 +0100
-+++ madwifi-dfs-r3053/ath/if_ath.c     2007-12-13 05:25:14.558455106 +0100
-@@ -1648,7 +1648,6 @@
-       /* XXXAPSD: build in check against max triggers we could see
-        *          based on ic->ic_uapsdmaxtriggers. */
-       hw_tsf = ath_hal_gettsf64(ah);
+--- madwifi-trunk-r3280.orig/ath/if_ath.c      2008-01-28 17:30:33.325904012 +0100
++++ madwifi-trunk-r3280/ath/if_ath.c   2008-01-28 17:31:21.850243393 +0100
+@@ -1674,8 +1674,6 @@
+        * get to reality.  This value is used in monitor mode and by tools like
+        * Wireshark and Kismet.
+        */
 -      ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan));
+-
        ATH_RXBUF_LOCK_IRQ(sc);
        if (sc->sc_rxbufcur == NULL)
-@@ -8815,6 +8814,7 @@
-               if (ath_calinterval == ATH_LONG_CALINTERVAL)
-                       ath_calinterval = ATH_SHORT_CALINTERVAL;
+               sc->sc_rxbufcur = STAILQ_FIRST(&sc->sc_rxbuf);
+@@ -8868,6 +8866,7 @@
+                       sc->sc_curchan.channel);
+               sc->sc_stats.ast_per_calfail++;
        }
 +      ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan));
  
-       DPRINTF(sc, ATH_DEBUG_CALIBRATE, "%s: channel %u/%x -- IQ %s.\n",
-               __func__, sc->sc_curchan.channel, sc->sc_curchan.channelFlags,
-@@ -8869,6 +8869,7 @@
+       ath_hal_process_noisefloor(ah);
+       if (isIQdone == AH_TRUE) {
+@@ -8936,6 +8935,7 @@
        struct ath_softc *sc = dev->priv;
  
        (void) ath_chan_set(sc, ic->ic_curchan);
@@ -26,7 +27,7 @@ Index: madwifi-dfs-r3053/ath/if_ath.c
        /*
         * If we are returning to our bss channel then mark state
         * so the next recv'd beacon's TSF will be used to sync the
-@@ -9095,6 +9096,7 @@
+@@ -9204,6 +9204,7 @@
                }
  
                ath_hal_process_noisefloor(ah);