Author: bschmidt
Date: Sat Jun 18 11:27:28 2011
New Revision: 223234
URL: http://svn.freebsd.org/changeset/base/223234

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

Modified:
  stable/8/sys/dev/iwn/if_iwn.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)

Modified: stable/8/sys/dev/iwn/if_iwn.c
==============================================================================
--- stable/8/sys/dev/iwn/if_iwn.c       Sat Jun 18 11:25:33 2011        
(r223233)
+++ stable/8/sys/dev/iwn/if_iwn.c       Sat Jun 18 11:27:28 2011        
(r223234)
@@ -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-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to