madwifi: handle frame classification properly if eth->h_proto contains the protocol...
[openwrt.git] / package / madwifi / patches / 310-noise_get.patch
1 --- a/ath/if_ath.c
2 +++ b/ath/if_ath.c
3 @@ -1699,8 +1699,6 @@ ath_uapsd_processtriggers(struct ath_sof
4          * get to reality.  This value is used in monitor mode and by tools like
5          * Wireshark and Kismet.
6          */
7 -       ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan));
8 -
9         ATH_RXBUF_LOCK_IRQ(sc);
10         if (sc->sc_rxbufcur == NULL)
11                 sc->sc_rxbufcur = STAILQ_FIRST(&sc->sc_rxbuf);
12 @@ -8975,6 +8973,7 @@ ath_calibrate(unsigned long arg)
13                         sc->sc_curchan.channel);
14                 sc->sc_stats.ast_per_calfail++;
15         }
16 +       ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan));
17  
18         ath_hal_process_noisefloor(ah);
19         if (isIQdone == AH_TRUE) {
20 @@ -9043,6 +9042,7 @@ ath_set_channel(struct ieee80211com *ic)
21         struct ath_softc *sc = dev->priv;
22  
23         (void) ath_chan_set(sc, ic->ic_curchan);
24 +       ic->ic_channoise = ath_hal_get_channel_noise(sc->sc_ah, &(sc->sc_curchan));
25         /*
26          * If we are returning to our bss channel then mark state
27          * so the next recv'd beacon's TSF will be used to sync the
28 @@ -9311,6 +9311,7 @@ ath_newstate(struct ieee80211vap *vap, e
29                 }
30  
31                 ath_hal_process_noisefloor(ah);
32 +               ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan));
33                 /*
34                  * Reset rssi stats; maybe not the best place...
35                  */
36 --- a/net80211/ieee80211_wireless.c
37 +++ b/net80211/ieee80211_wireless.c
38 @@ -4358,6 +4358,7 @@ get_sta_info(void *arg, struct ieee80211
39         si->isi_state = ni->ni_flags;
40         si->isi_authmode = ni->ni_authmode;
41         si->isi_rssi = ic->ic_node_getrssi(ni);
42 +       si->isi_noise = ic->ic_channoise;
43         si->isi_capinfo = ni->ni_capinfo;
44         si->isi_athflags = ni->ni_ath_flags;
45         si->isi_erp = ni->ni_erp;
46 --- a/net80211/ieee80211_ioctl.h
47 +++ b/net80211/ieee80211_ioctl.h
48 @@ -311,6 +311,7 @@ struct ieee80211req_sta_info {
49         u_int16_t isi_state;            /* state flags */
50         u_int8_t isi_authmode;          /* authentication algorithm */
51         u_int8_t isi_rssi;
52 +       int8_t isi_noise;
53         u_int16_t isi_capinfo;          /* capabilities */
54         u_int8_t isi_athflags;          /* Atheros capabilities */
55         u_int8_t isi_erp;               /* ERP element */