svn commit: r238938 - head/sys/dev/wtap
Monthadar Al Jaberi
monthadar at FreeBSD.org
Tue Jul 31 07:22:51 UTC 2012
Author: monthadar
Date: Tue Jul 31 07:22:50 2012
New Revision: 238938
URL: http://svn.freebsd.org/changeset/base/238938
Log:
Fix wtap to not panic in wtap_beacon_intrp.
* Changed KASSERT to be debug printf (DWTAP_PRINTF). If state is not
IEEE80211_S_RUN we return without scheduling a new callout;
* When net80211 stack changes state to IEEE802_11_INIT we stop the
beacon callout task;
Modified:
head/sys/dev/wtap/if_wtap.c
Modified: head/sys/dev/wtap/if_wtap.c
==============================================================================
--- head/sys/dev/wtap/if_wtap.c Tue Jul 31 05:51:48 2012 (r238937)
+++ head/sys/dev/wtap/if_wtap.c Tue Jul 31 07:22:50 2012 (r238938)
@@ -230,8 +230,10 @@ wtap_beacon_intrp(void *arg)
struct ieee80211vap *vap = arg;
struct mbuf *m;
- KASSERT(vap->iv_state >= IEEE80211_S_RUN,
- ("not running, state %d", vap->iv_state));
+ if (vap->iv_state < IEEE80211_S_RUN) {
+ DWTAP_PRINTF("Skip beacon, not running, state %d", vap->iv_state);
+ return ;
+ }
DWTAP_PRINTF("[%d] beacon intrp\n", avp->id); //burst mode
/*
* Update dynamic beacon contents. If this returns
@@ -289,6 +291,8 @@ wtap_newstate(struct ieee80211vap *vap,
default:
goto bad;
}
+ } else if (nstate == IEEE80211_S_INIT) {
+ callout_stop(&avp->av_swba);
}
return 0;
bad:
More information about the svn-src-all
mailing list