On Fri, Jan 28, 2011 at 3:48 AM, Steve Brown <sbr...@cortland.com> wrote:
>
> The variable appears in both in ath_softc and ath_beacon_config.
> The struct ath_beacon_config is embedded in ath_softc. The extra
> variable was added by commit id 57c4d7b4c4986037be51476b8e3025d5ba18d8b8.
>
> ---
>
> --- a/drivers/net/wireless/ath/ath9k/ath9k.h
> +++ b/drivers/net/wireless/ath/ath9k/ath9k.h
> @@ -369,7 +369,7 @@ struct ath_vif {
> #define IEEE80211_MS_TO_TU(x) (((x) * 1000) / 1024)
>
> struct ath_beacon_config {
> - u16 beacon_interval;
> + int beacon_interval;
> u16 listen_interval;
> u16 dtim_period;
> u16 bmiss_timeout;
> @@ -621,8 +621,6 @@ struct ath_softc {
> struct ath9k_hw_cal_data caldata;
> int last_rssi;
>
> - int beacon_interval;
> -
> #ifdef CONFIG_ATH9K_DEBUGFS
> struct ath9k_debug debug;
> spinlock_t nodes_lock;
> --- a/drivers/net/wireless/ath/ath9k/beacon.c
> +++ b/drivers/net/wireless/ath/ath9k/beacon.c
> @@ -226,6 +226,7 @@ int ath_beacon_alloc(struct ath_softc *s
> struct ath_vif *avp;
> struct ath_buf *bf;
> struct sk_buff *skb;
> + struct ath_beacon_config *cur_conf = &sc->cur_beacon_conf;
> __le64 tstamp;
>
> avp = (void *)vif->drv_priv;
> @@ -282,7 +283,7 @@ int ath_beacon_alloc(struct ath_softc *s
> u64 tsfadjust;
> int intval;
>
> - intval = sc->beacon_interval ? : ATH_DEFAULT_BINTVAL;
> + intval = cur_conf->beacon_interval ? : ATH_DEFAULT_BINTVAL;
>
> /*
> * Calculate the TSF offset for this beacon slot, i.e., the
> @@ -346,6 +347,7 @@ void ath_beacon_return(struct ath_softc
> void ath_beacon_tasklet(unsigned long data)
> {
> struct ath_softc *sc = (struct ath_softc *)data;
> + struct ath_beacon_config *cur_conf = &sc->cur_beacon_conf;
> struct ath_hw *ah = sc->sc_ah;
> struct ath_common *common = ath9k_hw_common(ah);
> struct ath_buf *bf = NULL;
> @@ -393,7 +395,7 @@ void ath_beacon_tasklet(unsigned long da
> * on the tsf to safeguard against missing an swba.
> */
>
> - intval = sc->beacon_interval ? : ATH_DEFAULT_BINTVAL;
> + intval = cur_conf->beacon_interval ? : ATH_DEFAULT_BINTVAL;
>
> tsf = ath9k_hw_gettsf64(ah);
> tsftu = TSF_TO_TU(tsf>>32, tsf);
> --- a/drivers/net/wireless/ath/ath9k/main.c
> +++ b/drivers/net/wireless/ath/ath9k/main.c
> @@ -1922,6 +1922,7 @@ static void ath9k_bss_info_changed(struc
> u32 changed)
> {
> struct ath_softc *sc = hw->priv;
> + struct ath_beacon_config *cur_conf = &sc->cur_beacon_conf;
> struct ath_hw *ah = sc->sc_ah;
> struct ath_common *common = ath9k_hw_common(ah);
> struct ath_vif *avp = (void *)vif->drv_priv;
> @@ -1980,7 +1981,7 @@ static void ath9k_bss_info_changed(struc
> ath9k_hw_stoptxdma(sc->sc_ah, sc->beacon.beaconq);
>
> if (changed & BSS_CHANGED_BEACON_INT) {
> - sc->beacon_interval = bss_conf->beacon_int;
> + cur_conf->beacon_interval = bss_conf->beacon_int;
> /*
> * In case of AP mode, the HW TSF has to be reset
> * when the beacon interval changes.
> --- a/drivers/net/wireless/ath/ath9k/xmit.c
> +++ b/drivers/net/wireless/ath/ath9k/xmit.c
> @@ -1054,6 +1054,7 @@ int ath_txq_update(struct ath_softc *sc,
> int ath_cabq_update(struct ath_softc *sc)
> {
> struct ath9k_tx_queue_info qi;
> + struct ath_beacon_config *cur_conf = &sc->cur_beacon_conf;
> int qnum = sc->beacon.cabq->axq_qnum;
>
> ath9k_hw_get_txq_props(sc->sc_ah, qnum, &qi);
> @@ -1065,7 +1066,7 @@ int ath_cabq_update(struct ath_softc *sc
> else if (sc->config.cabqReadytime > ATH9K_READY_TIME_HI_BOUND)
> sc->config.cabqReadytime = ATH9K_READY_TIME_HI_BOUND;
>
> - qi.tqi_readyTime = (sc->beacon_interval *
> + qi.tqi_readyTime = (cur_conf->beacon_interval *
> sc->config.cabqReadytime) / 100;
> ath_txq_update(sc, qnum, &qi);
>
>
> _______________________________________________
> ath9k-devel mailing list
> ath9k-devel@lists.ath9k.org
> https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>
Thanks Steve... could not find any mistake in it.
_______________________________________________
ath9k-devel mailing list
ath9k-devel@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel