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;
                }
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to