diff options
author | sam <sam@FreeBSD.org> | 2009-07-24 15:37:02 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2009-07-24 15:37:02 +0000 |
commit | d6e0586219d19788c9ead7bdea50914572e7f5f2 (patch) | |
tree | 9db07d427a5f22a5d1b0f87382fde30668cfe38b | |
parent | 33f3a67bc1f6ed041c320e4d7ebf363b010178db (diff) | |
download | FreeBSD-src-d6e0586219d19788c9ead7bdea50914572e7f5f2.zip FreeBSD-src-d6e0586219d19788c9ead7bdea50914572e7f5f2.tar.gz |
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)
-rw-r--r-- | sys/net80211/ieee80211_output.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c index afbbfc3..f1a21bc 100644 --- a/sys/net80211/ieee80211_output.c +++ b/sys/net80211/ieee80211_output.c @@ -382,10 +382,22 @@ ieee80211_output(struct ifnet *ifp, struct mbuf *m, { #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. |