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