From owner-p4-projects@FreeBSD.ORG Fri Feb 29 19:47:27 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 564061065834; Fri, 29 Feb 2008 19:47:27 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 582F710657C3 for ; Fri, 29 Feb 2008 19:47:26 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 484A48FC26 for ; Fri, 29 Feb 2008 19:47:26 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m1TJlQWQ092186 for ; Fri, 29 Feb 2008 19:47:26 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m1TJlQBl092184 for perforce@freebsd.org; Fri, 29 Feb 2008 19:47:26 GMT (envelope-from sam@freebsd.org) Date: Fri, 29 Feb 2008 19:47:26 GMT Message-Id: <200802291947.m1TJlQBl092184@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 136394 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Feb 2008 19:47:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=136394 Change 136394 by sam@sam_ebb on 2008/02/28 04:58:43 blindly convert Affected files ... .. //depot/projects/vap/sys/dev/ath/ath_rate/amrr/amrr.c#6 edit Differences ... ==== //depot/projects/vap/sys/dev/ath/ath_rate/amrr/amrr.c#6 (text+ko) ==== @@ -278,11 +278,12 @@ ath_rate_ctl_start(struct ath_softc *sc, struct ieee80211_node *ni) { #define RATE(_ix) (ni->ni_rates.rs_rates[(_ix)] & IEEE80211_RATE_VAL) - struct ieee80211com *ic = &sc->sc_ic; + struct ath_node *an = ATH_NODE(ni); + const struct ieee80211_txparam *tp = an->an_tp; int srate; KASSERT(ni->ni_rates.rs_nrates > 0, ("no rates")); - if (ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE) { + if (tp == NULL || tp->ucastrate == IEEE80211_FIXED_RATE_NONE) { /* * No fixed rate is requested. For 11b start with * the highest negotiated rate; otherwise, for 11g @@ -308,7 +309,7 @@ */ /* NB: the rate set is assumed sorted */ srate = ni->ni_rates.rs_nrates - 1; - for (; srate >= 0 && RATE(srate) != ic->ic_fixed_rate; srate--) + for (; srate >= 0 && RATE(srate) != tp->ucastrate; srate--) ; } /* @@ -333,22 +334,24 @@ * Reset the rate control state for each 802.11 state transition. */ void -ath_rate_newstate(struct ath_softc *sc, enum ieee80211_state state) +ath_rate_newstate(struct ieee80211vap *vap, enum ieee80211_state state) { + struct ieee80211com *ic = vap->iv_ic; + struct ath_softc *sc = ic->ic_ifp->if_softc; struct amrr_softc *asc = (struct amrr_softc *) sc->sc_rc; - struct ieee80211com *ic = &sc->sc_ic; + const struct ieee80211_txparam *tp; struct ieee80211_node *ni; if (state == IEEE80211_S_INIT) { callout_stop(&asc->timer); return; } - if (ic->ic_opmode == IEEE80211_M_STA) { + if (vap->iv_opmode == IEEE80211_M_STA) { /* * Reset local xmit state; this is really only * meaningful when operating in station mode. */ - ni = ic->ic_bss; + ni = vap->iv_bss; if (state == IEEE80211_S_RUN) { ath_rate_ctl_start(sc, ni); } else { @@ -362,9 +365,10 @@ * tx rate state of each node. */ ieee80211_iterate_nodes(&ic->ic_sta, ath_rate_cb, sc); - ath_rate_update(sc, ic->ic_bss, 0); + ath_rate_update(sc, vap->iv_bss, 0); } - if (ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE && + tp = ATH_NODE(vap->iv_bss)->an_tp; + if (tp->ucastrate == IEEE80211_FIXED_RATE_NONE && state == IEEE80211_S_RUN) { int interval; /* @@ -372,10 +376,10 @@ * are not configured to use a fixed xmit rate. */ interval = ath_rateinterval; - if (ic->ic_opmode == IEEE80211_M_STA) + if (vap->iv_opmode == IEEE80211_M_STA) interval /= 2; callout_reset(&asc->timer, (interval * hz) / 1000, - ath_ratectl, sc->sc_ifp); + ath_ratectl, vap); } } @@ -456,25 +460,25 @@ static void ath_ratectl(void *arg) { - struct ifnet *ifp = arg; + struct ieee80211vap *vap = arg; + struct ieee80211com *ic = vap->iv_ic; + struct ifnet *ifp = ic->ic_ifp; struct ath_softc *sc = ifp->if_softc; struct amrr_softc *asc = (struct amrr_softc *) sc->sc_rc; - struct ieee80211com *ic = &sc->sc_ic; int interval; if (ifp->if_drv_flags & IFF_DRV_RUNNING) { sc->sc_stats.ast_rate_calls++; - if (ic->ic_opmode == IEEE80211_M_STA) - ath_rate_ctl(sc, ic->ic_bss); /* NB: no reference */ + if (vap->iv_opmode == IEEE80211_M_STA) + ath_rate_ctl(sc, vap->iv_bss); /* NB: no reference */ else ieee80211_iterate_nodes(&ic->ic_sta, ath_rate_ctl, sc); } interval = ath_rateinterval; - if (ic->ic_opmode == IEEE80211_M_STA) + if (vap->iv_opmode == IEEE80211_M_STA) interval /= 2; - callout_reset(&asc->timer, (interval * hz) / 1000, - ath_ratectl, sc->sc_ifp); + callout_reset(&asc->timer, (interval * hz) / 1000, ath_ratectl, arg); } static void