svn commit: r220660 - head/sys/dev/iwn

Bernhard Schmidt bschmidt at FreeBSD.org
Fri Apr 15 16:55:46 UTC 2011


Author: bschmidt
Date: Fri Apr 15 16:55:45 2011
New Revision: 220660
URL: http://svn.freebsd.org/changeset/base/220660

Log:
  Only handle beacon misses while in RUN state and not scanning.

Modified:
  head/sys/dev/iwn/if_iwn.c

Modified: head/sys/dev/iwn/if_iwn.c
==============================================================================
--- head/sys/dev/iwn/if_iwn.c	Fri Apr 15 16:50:37 2011	(r220659)
+++ head/sys/dev/iwn/if_iwn.c	Fri Apr 15 16:55:45 2011	(r220660)
@@ -2463,23 +2463,22 @@ iwn_notif_intr(struct iwn_softc *sc)
 			    BUS_DMASYNC_POSTREAD);
 			misses = le32toh(miss->consecutive);
 
-			/* XXX not sure why we're notified w/ zero */
-			if (misses == 0)
-				break;
 			DPRINTF(sc, IWN_DEBUG_STATE,
 			    "%s: beacons missed %d/%d\n", __func__,
 			    misses, le32toh(miss->total));
-
 			/*
 			 * If more than 5 consecutive beacons are missed,
 			 * reinitialize the sensitivity state machine.
 			 */
-			if (vap->iv_state == IEEE80211_S_RUN && misses > 5)
-				(void) iwn_init_sensitivity(sc);
-			if (misses >= vap->iv_bmissthreshold) {
-				IWN_UNLOCK(sc);
-				ieee80211_beacon_miss(ic);
-				IWN_LOCK(sc);
+			if (vap->iv_state == IEEE80211_S_RUN &&
+			    (ic->ic_flags & IEEE80211_F_SCAN) != 0) {
+				if (misses > 5)
+					(void)iwn_init_sensitivity(sc);
+				if (misses >= vap->iv_bmissthreshold) {
+					IWN_UNLOCK(sc);
+					ieee80211_beacon_miss(ic);
+					IWN_LOCK(sc);
+				}
 			}
 			break;
 		}


More information about the svn-src-head mailing list