View | Details | Raw Unified | Return to bug 197143 | Differences between
and this patch

Collapse All | Expand All

(-)sys/dev/wpi/if_wpi.c (-2 / +7 lines)
Lines 2115-2125 Link Here
2115
		{
2115
		{
2116
			struct wpi_beacon_missed *miss =
2116
			struct wpi_beacon_missed *miss =
2117
			    (struct wpi_beacon_missed *)(desc + 1);
2117
			    (struct wpi_beacon_missed *)(desc + 1);
2118
			uint32_t misses;
2118
			uint32_t expected, misses, received;
2119
2119
2120
			bus_dmamap_sync(sc->rxq.data_dmat, data->map,
2120
			bus_dmamap_sync(sc->rxq.data_dmat, data->map,
2121
			    BUS_DMASYNC_POSTREAD);
2121
			    BUS_DMASYNC_POSTREAD);
2122
2122
			misses = le32toh(miss->consecutive);
2123
			misses = le32toh(miss->consecutive);
2124
			expected = le32toh(miss->expected);
2125
			received = le32toh(miss->received);
2123
2126
2124
			DPRINTF(sc, WPI_DEBUG_BMISS,
2127
			DPRINTF(sc, WPI_DEBUG_BMISS,
2125
			    "%s: beacons missed %d/%d\n", __func__, misses,
2128
			    "%s: beacons missed %d/%d\n", __func__, misses,
Lines 2127-2133 Link Here
2127
2130
2128
			if (vap->iv_state == IEEE80211_S_RUN &&
2131
			if (vap->iv_state == IEEE80211_S_RUN &&
2129
			    (ic->ic_flags & IEEE80211_F_SCAN) == 0 &&
2132
			    (ic->ic_flags & IEEE80211_F_SCAN) == 0 &&
2130
			    misses >= vap->iv_bmissthreshold)
2133
			    (misses >= vap->iv_bmissthreshold ||
2134
			    (received == 0 &&
2135
			    expected >= vap->iv_bmissthreshold)))
2131
				ieee80211_beacon_miss(ic);
2136
				ieee80211_beacon_miss(ic);
2132
2137
2133
			break;
2138
			break;

Return to bug 197143