]> xenbits.xensource.com Git - people/liuw/freebsd.git/commitdiff
Initialize radiotap header fields before calling ieee80211_radiotap_rx()
authoravos <avos@FreeBSD.org>
Thu, 22 Oct 2015 12:15:40 +0000 (12:15 +0000)
committeravos <avos@FreeBSD.org>
Thu, 22 Oct 2015 12:15:40 +0000 (12:15 +0000)
Reviewed by: kevlo
Approved by: adrian (mentor)
Differential Revision: https://reviews.freebsd.org/D3951

sys/dev/usb/wlan/if_run.c

index 3a8c02038bfb63efc0d596db4563c1e2af617ba0..5c4d755e8346e002d0c6810890527ce2289b8db4 100644 (file)
@@ -2847,13 +2847,6 @@ run_rx_frame(struct run_softc *sc, struct mbuf *m, uint32_t dmalen)
 
        m->m_pkthdr.len = m->m_len = len;
 
-       if (ni != NULL) {
-               (void)ieee80211_input(ni, m, rssi, nf);
-               ieee80211_free_node(ni);
-       } else {
-               (void)ieee80211_input_all(ic, m, rssi, nf);
-       }
-
        if (__predict_false(ieee80211_radiotap_active(ic))) {
                struct run_rx_radiotap_header *tap = &sc->sc_rxtap;
                uint16_t phy;
@@ -2892,6 +2885,13 @@ run_rx_frame(struct run_softc *sc, struct mbuf *m, uint32_t dmalen)
                        break;
                }
        }
+
+       if (ni != NULL) {
+               (void)ieee80211_input(ni, m, rssi, nf);
+               ieee80211_free_node(ni);
+       } else {
+               (void)ieee80211_input_all(ic, m, rssi, nf);
+       }
 }
 
 static void