Seventh pass: fix callout and bpf function calls.
authorRui Paulo <rpaulo@FreeBSD.org>
Fri, 19 Feb 2010 15:16:19 +0000 (15:16 +0000)
committerRui Paulo <rpaulo@FreeBSD.org>
Fri, 19 Feb 2010 15:16:19 +0000 (15:16 +0000)
sys/netproto/802_11/wlan/ieee80211_dfs.c
sys/netproto/802_11/wlan/ieee80211_dragonfly.c
sys/netproto/802_11/wlan/ieee80211_ioctl.c
sys/netproto/802_11/wlan/ieee80211_output.c
sys/netproto/802_11/wlan/ieee80211_radiotap.c
sys/netproto/802_11/wlan/ieee80211_scan.c

index 403d3a3..c0ef5e4 100644 (file)
@@ -68,8 +68,12 @@ ieee80211_dfs_attach(struct ieee80211com *ic)
 {
        struct ieee80211_dfs_state *dfs = &ic->ic_dfs;
 
+#ifdef __FreeBSD__
        callout_init_mtx(&dfs->nol_timer, IEEE80211_LOCK_OBJ(ic), 0);
        callout_init_mtx(&dfs->cac_timer, IEEE80211_LOCK_OBJ(ic), 0);
+#endif
+       callout_init(&dfs->nol_timer);
+       callout_init(&dfs->cac_timer);
 }
 
 void
@@ -234,7 +238,8 @@ dfs_timeout(void *arg)
        }
        if (oldest != now) {
                /* arrange to process next channel up for a status change */
-               callout_schedule(&dfs->nol_timer, oldest + NOL_TIMEOUT - now);
+               callout_reset(&dfs->nol_timer, oldest + NOL_TIMEOUT - now,
+                   dfs_timeout, ic);
        }
 }
 
@@ -305,8 +310,9 @@ ieee80211_dfs_notify_radar(struct ieee80211com *ic, struct ieee80211_channel *ch
 
                announce_radar(ic->ic_ifp, chan, dfs->newchan);
 
+#ifdef notyet
                if (callout_pending(&dfs->cac_timer))
-                       callout_schedule(&dfs->cac_timer, 0);
+                       callout_reset(&dfs->cac_timer, 0, cac_timeout, vap);
                else if (dfs->newchan != NULL) {
                        /* XXX mode 1, switch count 2 */
                        /* XXX calculate switch count based on max
@@ -320,6 +326,7 @@ ieee80211_dfs_notify_radar(struct ieee80211com *ic, struct ieee80211_channel *ch
                         */
                        /*XXX*/
                }
+#endif
        } else {
                /*
                 * Issue rate-limited console msgs.
index 60b4ba4..960508c 100644 (file)
@@ -423,6 +423,7 @@ ieee80211_realign(struct ieee80211vap *vap, struct mbuf *m, size_t align)
        space = pktlen + align;
        if (space < MINCLSIZE)
                n = m_gethdr(MB_DONTWAIT, MT_DATA);
+#ifdef notyet
        else {
                n = m_getjcl(MB_DONTWAIT, MT_DATA, M_PKTHDR,
                    space <= MCLBYTES ?     MCLBYTES :
@@ -431,6 +432,7 @@ ieee80211_realign(struct ieee80211vap *vap, struct mbuf *m, size_t align)
 #endif
                    space <= MJUM9BYTES ?   MJUM9BYTES : MJUM16BYTES);
        }
+#endif
        if (__predict_true(n != NULL)) {
                m_move_pkthdr(n, m);
                n->m_data = (caddr_t)(ALIGN(n->m_data + align) - align);
@@ -733,6 +735,7 @@ bpf_track(void *arg, struct ifnet *ifp, int dlt, int attach)
                 * vap.  This flag is used by drivers to prepare radiotap
                 * state only when needed.
                 */
+#ifdef notyet
                if (attach) {
                        ieee80211_syncflag_ext(vap, IEEE80211_FEXT_BPF);
                        if (vap->iv_opmode == IEEE80211_M_MONITOR)
@@ -742,6 +745,7 @@ bpf_track(void *arg, struct ifnet *ifp, int dlt, int attach)
                        if (vap->iv_opmode == IEEE80211_M_MONITOR)
                                atomic_subtract_int(&vap->iv_ic->ic_montaps, 1);
                }
+#endif
        }
 }
 
index 7b90cc0..c20defd 100644 (file)
@@ -44,6 +44,7 @@
 #include <sys/systm.h>
  
 #include <net/if.h>
+#include <net/if_var.h>
 #include <net/if_dl.h>
 #include <net/if_media.h>
 #include <net/ethernet.h>
index b6d1ebc..fc7bf63 100644 (file)
@@ -794,6 +794,7 @@ ieee80211_classify(struct ieee80211_node *ni, struct mbuf *m)
                        IEEE80211_NODE_STAT(ni, tx_novlantag);
                        return 1;
                }
+#ifdef __FreeBSD__
                if (EVL_VLANOFTAG(m->m_pkthdr.ether_vlantag) !=
                    EVL_VLANOFTAG(ni->ni_vlan)) {
                        IEEE80211_NODE_STAT(ni, tx_vlanmismatch);
@@ -801,6 +802,7 @@ ieee80211_classify(struct ieee80211_node *ni, struct mbuf *m)
                }
                /* map vlan priority to AC */
                v_wme_ac = TID_TO_WME_AC(EVL_PRIOFTAG(ni->ni_vlan));
+#endif
        }
 
        /* XXX m_copydata may be too slow for fast path */
@@ -891,6 +893,7 @@ ieee80211_mbuf_adjust(struct ieee80211vap *vap, int hdrsize,
                 * a writable mbuf chain.
                 * XXX handle SWMIC specially
                 */
+#ifdef __FreeBSD__
                if (key->wk_flags & (IEEE80211_KEY_SWENCRYPT|IEEE80211_KEY_SWENMIC)) {
                        m = m_unshare(m, M_NOWAIT);
                        if (m == NULL) {
@@ -900,6 +903,7 @@ ieee80211_mbuf_adjust(struct ieee80211vap *vap, int hdrsize,
                                return NULL;
                        }
                }
+#endif
        }
        /*
         * We know we are called just before stripping an Ethernet
index 2ee9240..254be84 100644 (file)
@@ -225,7 +225,7 @@ ieee80211_radiotap_rx(struct ieee80211vap *vap0, struct mbuf *m)
        len = le16toh(rh->it_len);
 
        if (vap0->iv_flags_ext & IEEE80211_FEXT_BPF)
-               bpf_mtap2(vap0->iv_rawbpf, rh, len, m);
+               bpf_ptap(vap0->iv_rawbpf, m, rh, len);
        /*
         * Spam monitor mode vaps with unicast frames.  Multicast
         * frames are handled by passing through ieee80211_input_all
@@ -251,7 +251,7 @@ ieee80211_radiotap_rx_all(struct ieee80211com *ic, struct mbuf *m)
        TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) {
                if (ieee80211_radiotap_active_vap(vap) &&
                    vap->iv_state != IEEE80211_S_INIT)
-                       bpf_mtap2(vap->iv_rawbpf, rh, len, m);
+                       bpf_ptap(vap->iv_rawbpf, m, rh, len);
        }
 }
 
index cbe85ab..74c5531 100644 (file)
@@ -112,10 +112,11 @@ ieee80211_scan_attach(struct ieee80211com *ic)
                ic->ic_scan = NULL;
                return;
        }
-       callout_init_mtx(&ss->ss_scan_timer, IEEE80211_LOCK_OBJ(ic), 0);
 #ifdef __FreeBSD__
+       callout_init_mtx(&ss->ss_scan_timer, IEEE80211_LOCK_OBJ(ic), 0);
        cv_init(&ss->ss_scan_cv, "scan");
 #endif
+       callout_init(&ss->ss_scan_timer);
        TASK_INIT(&ss->ss_scan_task, 0, scan_task, ss);
        ic->ic_scan = &ss->base;
        ss->base.ss_ic = ic;