svn commit: r191507 - in user/thompsa/vaptq/sys: dev/usb/wlan
net80211
Andrew Thompson
thompsa at FreeBSD.org
Sun Apr 26 03:55:10 UTC 2009
Author: thompsa
Date: Sun Apr 26 03:55:08 2009
New Revision: 191507
URL: http://svn.freebsd.org/changeset/base/191507
Log:
Wrap the taskqueue_* calls in net80211 inlines.
Modified:
user/thompsa/vaptq/sys/dev/usb/wlan/if_rum.c
user/thompsa/vaptq/sys/dev/usb/wlan/if_ural.c
user/thompsa/vaptq/sys/net80211/ieee80211.c
user/thompsa/vaptq/sys/net80211/ieee80211_freebsd.h
user/thompsa/vaptq/sys/net80211/ieee80211_ioctl.c
user/thompsa/vaptq/sys/net80211/ieee80211_node.c
user/thompsa/vaptq/sys/net80211/ieee80211_proto.c
user/thompsa/vaptq/sys/net80211/ieee80211_scan.c
user/thompsa/vaptq/sys/net80211/ieee80211_scan_sta.c
user/thompsa/vaptq/sys/net80211/ieee80211_var.h
Modified: user/thompsa/vaptq/sys/dev/usb/wlan/if_rum.c
==============================================================================
--- user/thompsa/vaptq/sys/dev/usb/wlan/if_rum.c Sun Apr 26 02:44:41 2009 (r191506)
+++ user/thompsa/vaptq/sys/dev/usb/wlan/if_rum.c Sun Apr 26 03:55:08 2009 (r191507)
@@ -40,7 +40,6 @@ __FBSDID("$FreeBSD$");
#include <sys/bus.h>
#include <sys/endian.h>
#include <sys/kdb.h>
-#include <sys/taskqueue.h>
#include <machine/bus.h>
#include <machine/resource.h>
@@ -636,7 +635,7 @@ rum_vap_delete(struct ieee80211vap *vap)
struct ieee80211com *ic = vap->iv_ic;
usb2_callout_drain(&rvp->amrr_ch);
- taskqueue_drain(ic->ic_tq, &rvp->amrr_task);
+ ieee80211_draintask(ic, &rvp->amrr_task);
ieee80211_amrr_cleanup(&rvp->amrr);
ieee80211_vap_detach(vap);
free(rvp, M_80211_VAP);
@@ -2199,7 +2198,7 @@ rum_amrr_timeout(void *arg)
struct ieee80211vap *vap = &rvp->vap;
struct ieee80211com *ic = vap->iv_ic;
- taskqueue_enqueue(ic->ic_tq, &rvp->amrr_task);
+ ieee80211_runtask(ic, &rvp->amrr_task);
}
static void
Modified: user/thompsa/vaptq/sys/dev/usb/wlan/if_ural.c
==============================================================================
--- user/thompsa/vaptq/sys/dev/usb/wlan/if_ural.c Sun Apr 26 02:44:41 2009 (r191506)
+++ user/thompsa/vaptq/sys/dev/usb/wlan/if_ural.c Sun Apr 26 03:55:08 2009 (r191507)
@@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$");
#include <sys/bus.h>
#include <sys/endian.h>
#include <sys/kdb.h>
-#include <sys/taskqueue.h>
#include <machine/bus.h>
#include <machine/resource.h>
@@ -627,7 +626,7 @@ ural_vap_delete(struct ieee80211vap *vap
struct ieee80211com *ic = vap->iv_ic;
usb2_callout_drain(&uvp->amrr_ch);
- taskqueue_drain(ic->ic_tq, &uvp->amrr_task);
+ ieee80211_draintask(ic, &uvp->amrr_task);
ieee80211_amrr_cleanup(&uvp->amrr);
ieee80211_vap_detach(vap);
free(uvp, M_80211_VAP);
@@ -2244,7 +2243,7 @@ ural_amrr_timeout(void *arg)
struct ieee80211vap *vap = &uvp->vap;
struct ieee80211com *ic = vap->iv_ic;
- taskqueue_enqueue(ic->ic_tq, &uvp->amrr_task);
+ ieee80211_runtask(ic, &uvp->amrr_task);
}
static void
Modified: user/thompsa/vaptq/sys/net80211/ieee80211.c
==============================================================================
--- user/thompsa/vaptq/sys/net80211/ieee80211.c Sun Apr 26 02:44:41 2009 (r191506)
+++ user/thompsa/vaptq/sys/net80211/ieee80211.c Sun Apr 26 03:55:08 2009 (r191507)
@@ -35,7 +35,6 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/taskqueue.h>
#include <sys/socket.h>
@@ -568,8 +567,8 @@ ieee80211_vap_detach(struct ieee80211vap
* Flush any deferred vap tasks.
* NB: must be before ether_ifdetach() and removal from ic_vaps list
*/
- taskqueue_drain(ic->ic_tq, &vap->iv_nstate_task);
- taskqueue_drain(ic->ic_tq, &vap->iv_swbmiss_task);
+ ieee80211_draintask(ic, &vap->iv_nstate_task);
+ ieee80211_draintask(ic, &vap->iv_swbmiss_task);
IEEE80211_LOCK(ic);
KASSERT(vap->iv_state == IEEE80211_S_INIT , ("vap still running"));
@@ -645,11 +644,9 @@ ieee80211_syncifflag_locked(struct ieee8
/* XXX should we return 1/0 and let caller do this? */
if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
if (flag == IFF_PROMISC)
- taskqueue_enqueue(ic->ic_tq,
- &ic->ic_promisc_task);
+ ieee80211_runtask(ic, &ic->ic_promisc_task);
else if (flag == IFF_ALLMULTI)
- taskqueue_enqueue(ic->ic_tq,
- &ic->ic_mcast_task);
+ ieee80211_runtask(ic, &ic->ic_mcast_task);
}
}
}
Modified: user/thompsa/vaptq/sys/net80211/ieee80211_freebsd.h
==============================================================================
--- user/thompsa/vaptq/sys/net80211/ieee80211_freebsd.h Sun Apr 26 02:44:41 2009 (r191506)
+++ user/thompsa/vaptq/sys/net80211/ieee80211_freebsd.h Sun Apr 26 03:55:08 2009 (r191507)
@@ -32,6 +32,7 @@
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/rwlock.h>
+#include <sys/taskqueue.h>
/*
* Common state locking definitions.
Modified: user/thompsa/vaptq/sys/net80211/ieee80211_ioctl.c
==============================================================================
--- user/thompsa/vaptq/sys/net80211/ieee80211_ioctl.c Sun Apr 26 02:44:41 2009 (r191506)
+++ user/thompsa/vaptq/sys/net80211/ieee80211_ioctl.c Sun Apr 26 03:55:08 2009 (r191507)
@@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$");
#include <sys/socket.h>
#include <sys/sockio.h>
#include <sys/systm.h>
-#include <sys/taskqueue.h>
#include <net/if.h>
#include <net/if_dl.h>
Modified: user/thompsa/vaptq/sys/net80211/ieee80211_node.c
==============================================================================
--- user/thompsa/vaptq/sys/net80211/ieee80211_node.c Sun Apr 26 02:44:41 2009 (r191506)
+++ user/thompsa/vaptq/sys/net80211/ieee80211_node.c Sun Apr 26 03:55:08 2009 (r191507)
@@ -34,7 +34,6 @@ __FBSDID("$FreeBSD$");
#include <sys/mbuf.h>
#include <sys/malloc.h>
#include <sys/kernel.h>
-#include <sys/taskqueue.h>
#include <sys/socket.h>
@@ -661,7 +660,7 @@ ieee80211_setcurchan(struct ieee80211com
* The channel change is guaranteed to have happened before the next
* state change
*/
- taskqueue_enqueue(ic->ic_tq, &ic->ic_chan_task);
+ ieee80211_runtask(ic, &ic->ic_chan_task);
}
/*
Modified: user/thompsa/vaptq/sys/net80211/ieee80211_proto.c
==============================================================================
--- user/thompsa/vaptq/sys/net80211/ieee80211_proto.c Sun Apr 26 02:44:41 2009 (r191506)
+++ user/thompsa/vaptq/sys/net80211/ieee80211_proto.c Sun Apr 26 03:55:08 2009 (r191507)
@@ -37,7 +37,6 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/systm.h>
-#include <sys/taskqueue.h>
#include <sys/socket.h>
#include <sys/sockio.h>
@@ -1120,11 +1119,11 @@ update_channel(void *arg, int npending)
void
ieee80211_waitfor_parent(struct ieee80211com *ic)
{
- taskqueue_drain(ic->ic_tq, &ic->ic_parent_task);
- taskqueue_drain(ic->ic_tq, &ic->ic_mcast_task);
- taskqueue_drain(ic->ic_tq, &ic->ic_promisc_task);
- taskqueue_drain(ic->ic_tq, &ic->ic_chan_task);
- taskqueue_drain(ic->ic_tq, &ic->ic_bmiss_task);
+ ieee80211_draintask(ic, &ic->ic_parent_task);
+ ieee80211_draintask(ic, &ic->ic_mcast_task);
+ ieee80211_draintask(ic, &ic->ic_promisc_task);
+ ieee80211_draintask(ic, &ic->ic_chan_task);
+ ieee80211_draintask(ic, &ic->ic_bmiss_task);
}
/*
@@ -1165,7 +1164,7 @@ ieee80211_start_locked(struct ieee80211v
IEEE80211_MSG_STATE | IEEE80211_MSG_DEBUG,
"%s: up parent %s\n", __func__, parent->if_xname);
parent->if_flags |= IFF_UP;
- taskqueue_enqueue(ic->ic_tq, &ic->ic_parent_task);
+ ieee80211_runtask(ic, &ic->ic_parent_task);
return;
}
}
@@ -1284,7 +1283,7 @@ ieee80211_stop_locked(struct ieee80211va
IEEE80211_MSG_STATE | IEEE80211_MSG_DEBUG,
"down parent %s\n", parent->if_xname);
parent->if_flags &= ~IFF_UP;
- taskqueue_enqueue(ic->ic_tq, &ic->ic_parent_task);
+ ieee80211_runtask(ic, &ic->ic_parent_task);
}
}
}
@@ -1366,7 +1365,7 @@ ieee80211_beacon_miss(struct ieee80211co
IEEE80211_LOCK(ic);
if ((ic->ic_flags & IEEE80211_F_SCAN) == 0) {
/* Process in a taskq, the handler may reenter the driver */
- taskqueue_enqueue(ic->ic_tq, &ic->ic_bmiss_task);
+ ieee80211_runtask(ic, &ic->ic_bmiss_task);
}
IEEE80211_UNLOCK(ic);
}
@@ -1432,7 +1431,7 @@ ieee80211_swbmiss(void *arg)
vap->iv_swbmiss_count = 0;
} else if (vap->iv_swbmiss_count == 0) {
if (vap->iv_bmiss != NULL)
- taskqueue_enqueue(ic->ic_tq, &vap->iv_swbmiss_task);
+ ieee80211_runtask(ic, &vap->iv_swbmiss_task);
if (vap->iv_bmiss_count == 0) /* don't re-arm timer */
return;
} else
@@ -1820,7 +1819,7 @@ ieee80211_new_state_locked(struct ieee80
/* defer the state change to a thread */
vap->iv_nstate = nstate;
vap->iv_nstate_arg = arg;
- taskqueue_enqueue(ic->ic_tq, &vap->iv_nstate_task);
+ ieee80211_runtask(ic, &vap->iv_nstate_task);
return (EINPROGRESS);
}
Modified: user/thompsa/vaptq/sys/net80211/ieee80211_scan.c
==============================================================================
--- user/thompsa/vaptq/sys/net80211/ieee80211_scan.c Sun Apr 26 02:44:41 2009 (r191506)
+++ user/thompsa/vaptq/sys/net80211/ieee80211_scan.c Sun Apr 26 03:55:08 2009 (r191507)
@@ -35,7 +35,6 @@ __FBSDID("$FreeBSD$");
#include <sys/systm.h>
#include <sys/proc.h>
#include <sys/kernel.h>
-#include <sys/taskqueue.h>
#include <sys/condvar.h>
#include <sys/socket.h>
@@ -131,7 +130,7 @@ ieee80211_scan_detach(struct ieee80211co
SCAN_PRIVATE(ss)->ss_iflags |= ISCAN_ABORT;
scan_signal(ss);
IEEE80211_UNLOCK(ic);
- taskqueue_drain(ic->ic_tq, &SCAN_PRIVATE(ss)->ss_scan_task);
+ ieee80211_draintask(ic, &SCAN_PRIVATE(ss)->ss_scan_task);
KASSERT((ic->ic_flags & IEEE80211_F_SCAN) == 0,
("scan still running"));
if (ss->ss_ops != NULL) {
@@ -428,8 +427,7 @@ start_scan_locked(const struct ieee80211
scan_dump(ss);
#endif /* IEEE80211_DEBUG */
ic->ic_flags |= IEEE80211_F_SCAN;
- taskqueue_enqueue(ic->ic_tq,
- &SCAN_PRIVATE(ss)->ss_scan_task);
+ ieee80211_runtask(ic, &SCAN_PRIVATE(ss)->ss_scan_task);
}
} else {
IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN,
@@ -655,8 +653,7 @@ ieee80211_bg_scan(struct ieee80211vap *v
ss->ss_maxdwell = duration;
ic->ic_flags |= IEEE80211_F_SCAN;
ic->ic_flags_ext |= IEEE80211_FEXT_BGSCAN;
- taskqueue_enqueue(ic->ic_tq,
- &SCAN_PRIVATE(ss)->ss_scan_task);
+ ieee80211_runtask(ic, &SCAN_PRIVATE(ss)->ss_scan_task);
} else {
/* XXX msg+stat */
}
@@ -992,7 +989,7 @@ scan_task(void *arg, int pending)
vap->iv_stats.is_scan_passive++;
ss->ss_ops->scan_restart(ss, vap); /* XXX? */
- taskqueue_enqueue(ic->ic_tq, &SCAN_PRIVATE(ss)->ss_scan_task);
+ ieee80211_runtask(ic, &SCAN_PRIVATE(ss)->ss_scan_task);
IEEE80211_UNLOCK(ic);
return;
}
Modified: user/thompsa/vaptq/sys/net80211/ieee80211_scan_sta.c
==============================================================================
--- user/thompsa/vaptq/sys/net80211/ieee80211_scan_sta.c Sun Apr 26 02:44:41 2009 (r191506)
+++ user/thompsa/vaptq/sys/net80211/ieee80211_scan_sta.c Sun Apr 26 03:55:08 2009 (r191507)
@@ -35,7 +35,6 @@ __FBSDID("$FreeBSD$");
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/module.h>
-#include <sys/taskqueue.h>
#include <sys/socket.h>
@@ -1641,7 +1640,7 @@ ap_force_promisc(struct ieee80211com *ic
IEEE80211_LOCK(ic);
/* set interface into promiscuous mode */
ifp->if_flags |= IFF_PROMISC;
- taskqueue_enqueue(ic->ic_tq, &ic->ic_promisc_task);
+ ieee80211_runtask(ic, &ic->ic_promisc_task);
IEEE80211_UNLOCK(ic);
}
Modified: user/thompsa/vaptq/sys/net80211/ieee80211_var.h
==============================================================================
--- user/thompsa/vaptq/sys/net80211/ieee80211_var.h Sun Apr 26 02:44:41 2009 (r191506)
+++ user/thompsa/vaptq/sys/net80211/ieee80211_var.h Sun Apr 26 03:55:08 2009 (r191507)
@@ -629,6 +629,24 @@ struct ieee80211_channel *ieee80211_find
int ieee80211_setmode(struct ieee80211com *, enum ieee80211_phymode);
enum ieee80211_phymode ieee80211_chan2mode(const struct ieee80211_channel *);
+/*
+ * Enqueue a task on the state thread.
+ */
+static __inline void
+ieee80211_runtask(struct ieee80211com *ic, struct task *task)
+{
+ taskqueue_enqueue(ic->ic_tq, task);
+}
+
+/*
+ * Wait for a queued task to complete.
+ */
+static __inline void
+ieee80211_draintask(struct ieee80211com *ic, struct task *task)
+{
+ taskqueue_drain(ic->ic_tq, task);
+}
+
/*
* Key update synchronization methods. XXX should not be visible.
*/
More information about the svn-src-user
mailing list