diff options
author | sam <sam@FreeBSD.org> | 2007-09-05 23:00:27 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2007-09-05 23:00:27 +0000 |
commit | 527eef962e3440e0484314868471050b85af5543 (patch) | |
tree | 30f88a14d8a73fd80df1d360d6a2f9a4e091e164 /sys/dev/iwi | |
parent | 82a73bb56563ac476ef079169cb642990e0a1cc7 (diff) | |
download | FreeBSD-src-527eef962e3440e0484314868471050b85af5543.zip FreeBSD-src-527eef962e3440e0484314868471050b85af5543.tar.gz |
Add missing bits that made bg scanning lame:
o update ic_lastdata to reflect time of last outbound frame
o outbound traffic must preempt/cancel bg scanning to avoid delays
This stuff was somehow missed in the initial import.
Reviewed by: thompsa, avatar, sephe (earlier version)
Approved by: re (blanket wireless)
Diffstat (limited to 'sys/dev/iwi')
-rw-r--r-- | sys/dev/iwi/if_iwi.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/iwi/if_iwi.c b/sys/dev/iwi/if_iwi.c index 205d66c..aaf7d1b 100644 --- a/sys/dev/iwi/if_iwi.c +++ b/sys/dev/iwi/if_iwi.c @@ -1917,6 +1917,11 @@ iwi_start(struct ifnet *ifp) IFQ_DRV_DEQUEUE(&ifp->if_snd, m0); if (m0 == NULL) break; + /* + * Cancel any background scan. + */ + if (ic->ic_flags & IEEE80211_F_SCAN) + ieee80211_cancel_scan(ic); if (m0->m_len < sizeof (struct ether_header) && (m0 = m_pullup(m0, sizeof (struct ether_header))) == NULL) { @@ -1978,6 +1983,7 @@ iwi_start(struct ifnet *ifp) } sc->sc_tx_timer = 5; + ic->ic_lastdata = ticks; } IWI_UNLOCK(sc); |