diff options
| author | Andriy Voskoboinyk <avos@FreeBSD.org> | 2016-11-06 23:13:13 +0000 |
|---|---|---|
| committer | Andriy Voskoboinyk <avos@FreeBSD.org> | 2016-11-06 23:13:13 +0000 |
| commit | d067ef0f0d92d1c39f68fbd48f276b529176bf12 (patch) | |
| tree | ac335d3d65175ded450d66eb4df6787596d4d257 /sys/dev/rtwn/if_rtwn.c | |
| parent | fafbeccf90d23d757c550096ea9e67f7bc1e2d74 (diff) | |
Notes
Diffstat (limited to 'sys/dev/rtwn/if_rtwn.c')
| -rw-r--r-- | sys/dev/rtwn/if_rtwn.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/sys/dev/rtwn/if_rtwn.c b/sys/dev/rtwn/if_rtwn.c index 0c9e81f8cbd5f..7b92b5cdaae36 100644 --- a/sys/dev/rtwn/if_rtwn.c +++ b/sys/dev/rtwn/if_rtwn.c @@ -628,10 +628,10 @@ rtwn_vap_delete(struct ieee80211vap *vap) ieee80211_draintask(ic, &ic->ic_parent_task); RTWN_LOCK(sc); - if (uvp->bcn_mbuf != NULL) - m_freem(uvp->bcn_mbuf); /* Cancel any unfinished Tx. */ rtwn_reset_lists(sc, vap); + if (uvp->bcn_mbuf != NULL) + m_freem(uvp->bcn_mbuf); rtwn_vap_decrement_counters(sc, vap->iv_opmode, uvp->id); rtwn_set_ic_opmode(sc); if (sc->sc_flags & RTWN_RUNNING) @@ -822,8 +822,10 @@ rtwn_push_nulldata(struct rtwn_softc *sc, struct ieee80211vap *vap) rtwn_setbits_1_shift(sc, R92C_FWHW_TXQ_CTRL, R92C_FWHW_TXQ_CTRL_REAL_BEACON, 0, 2); - if (uvp->bcn_mbuf != NULL) + if (uvp->bcn_mbuf != NULL) { + rtwn_beacon_unload(sc, uvp->id); m_freem(uvp->bcn_mbuf); + } m->m_pkthdr.len = m->m_len = required_size - sc->txdesc_len; uvp->bcn_mbuf = m; @@ -1268,6 +1270,9 @@ rtwn_run(struct rtwn_softc *sc, struct ieee80211vap *vap) } #endif + /* Enable TSF synchronization. */ + rtwn_tsf_sync_enable(sc, vap); + if (vap->iv_opmode == IEEE80211_M_HOSTAP || vap->iv_opmode == IEEE80211_M_IBSS) { error = rtwn_setup_beacon(sc, ni); @@ -1282,9 +1287,6 @@ rtwn_run(struct rtwn_softc *sc, struct ieee80211vap *vap) /* Set ACK preamble type. */ rtwn_set_ack_preamble(sc); - /* Enable TSF synchronization. */ - rtwn_tsf_sync_enable(sc, vap); - /* Set basic rates mask. */ rtwn_calc_basicrates(sc); |
