From ca4361b1481feda5e228739b5e207d56864d0a81 Mon Sep 17 00:00:00 2001 From: sam Date: Tue, 2 Jun 2009 21:11:26 +0000 Subject: [PATCH] restart tdma beacons after vap destroy --- sys/dev/ath/if_ath.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 05930e3ba8b3e4..5a854274477707 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -1153,8 +1153,14 @@ ath_vap_delete(struct ieee80211vap *vap) if (ath_startrecv(sc) != 0) if_printf(ifp, "%s: unable to restart recv logic\n", __func__); - if (sc->sc_beacons) - ath_beacon_config(sc, NULL); + if (sc->sc_beacons) { /* restart beacons */ +#ifdef IEEE80211_SUPPORT_TDMA + if (sc->sc_tdma) + ath_tdma_config(sc, NULL); + else +#endif + ath_beacon_config(sc, NULL); + } ath_hal_intrset(ah, sc->sc_imask); } } @@ -1652,13 +1658,13 @@ ath_reset(struct ifnet *ifp) * might change as a result. */ ath_chan_change(sc, ic->ic_curchan); - if (sc->sc_beacons) { + if (sc->sc_beacons) { /* restart beacons */ #ifdef IEEE80211_SUPPORT_TDMA if (sc->sc_tdma) ath_tdma_config(sc, NULL); else #endif - ath_beacon_config(sc, NULL); /* restart beacons */ + ath_beacon_config(sc, NULL); } ath_hal_intrset(ah, sc->sc_imask);