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:
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to