svn commit: r195849 - head/sys/net80211

Sam Leffler sam at FreeBSD.org
Fri Jul 24 15:37:03 UTC 2009


Author: sam
Date: Fri Jul 24 15:37:02 2009
New Revision: 195849
URL: http://svn.freebsd.org/changeset/base/195849

Log:
  revert OACTIVE part of r195845; instead fix the comment so it does not refer
  to the old hack removed in r193312
  
  Approved by:	re (implicit)

Modified:
  head/sys/net80211/ieee80211_output.c

Modified: head/sys/net80211/ieee80211_output.c
==============================================================================
--- head/sys/net80211/ieee80211_output.c	Fri Jul 24 15:31:22 2009	(r195848)
+++ head/sys/net80211/ieee80211_output.c	Fri Jul 24 15:37:02 2009	(r195849)
@@ -382,10 +382,22 @@ ieee80211_output(struct ifnet *ifp, stru
 {
 #define senderr(e) do { error = (e); goto bad;} while (0)
 	struct ieee80211_node *ni = NULL;
-	struct ieee80211vap *vap = ifp->if_softc;
+	struct ieee80211vap *vap;
 	struct ieee80211_frame *wh;
 	int error;
 
+	if (ifp->if_drv_flags & IFF_DRV_OACTIVE) {
+		/*
+		 * Short-circuit requests if the vap is marked OACTIVE
+		 * as this can happen because a packet came down through
+		 * ieee80211_start before the vap entered RUN state in
+		 * which case it's ok to just drop the frame.  This
+		 * should not be necessary but callers of if_output don't
+		 * check OACTIVE.
+		 */
+		senderr(ENETDOWN);
+	}
+	vap = ifp->if_softc;
 	/*
 	 * Hand to the 802.3 code if not tagged as
 	 * a raw 802.11 frame.


More information about the svn-src-head mailing list