This is a note to let you know that I've just added the patch titled iwlwifi: add rs_rate_scale_clear_tbl_windows helper function to the 3.14-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: iwlwifi-add-rs_rate_scale_clear_tbl_windows-helper-function.patch and it can be found in the queue-3.14 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From egrumbach@xxxxxxxxx Wed Jun 4 16:13:16 2014 From: Emmanuel Grumbach <egrumbach@xxxxxxxxx> Date: Wed, 4 Jun 2014 21:58:00 +0300 Subject: iwlwifi: add rs_rate_scale_clear_tbl_windows helper function To: stable@xxxxxxxxxxxxxxx Cc: Eliad Peller <eliad@xxxxxxxxxx>, Eliad Peller <eliadx.peller@xxxxxxxxx>, Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx> Message-ID: <1401908281-9185-1-git-send-email-egrumbach@xxxxxxxxx> From: Eliad Peller <eliad@xxxxxxxxxx> commit 3ca71f603bb1a0f55e1ba24618ba45617bc36f70 upstream. instead of duplicating the same loop multiple times, use a new function for it. this will be later used also for clearing other windows in the table. Signed-off-by: Eliad Peller <eliadx.peller@xxxxxxxxx> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/net/wireless/iwlwifi/mvm/rs.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) --- a/drivers/net/wireless/iwlwifi/mvm/rs.c +++ b/drivers/net/wireless/iwlwifi/mvm/rs.c @@ -519,6 +519,14 @@ static void rs_rate_scale_clear_window(s window->average_tpt = IWL_INVALID_VALUE; } +static void rs_rate_scale_clear_tbl_windows(struct iwl_scale_tbl_info *tbl) +{ + int i; + + for (i = 0; i < IWL_RATE_COUNT; i++) + rs_rate_scale_clear_window(&tbl->win[i]); +} + static inline u8 rs_is_valid_ant(u8 valid_antenna, u8 ant_type) { return (ant_type & valid_antenna) == ant_type; @@ -1397,7 +1405,6 @@ static u32 rs_bw_from_sta_bw(struct ieee static void rs_stay_in_table(struct iwl_lq_sta *lq_sta, bool force_search) { struct iwl_scale_tbl_info *tbl; - int i; int active_tbl; int flush_interval_passed = 0; struct iwl_mvm *mvm; @@ -1458,9 +1465,7 @@ static void rs_stay_in_table(struct iwl_ IWL_DEBUG_RATE(mvm, "LQ: stay in table clear win\n"); - for (i = 0; i < IWL_RATE_COUNT; i++) - rs_rate_scale_clear_window( - &(tbl->win[i])); + rs_rate_scale_clear_tbl_windows(tbl); } } @@ -1469,8 +1474,7 @@ static void rs_stay_in_table(struct iwl_ * "search" table). */ if (lq_sta->rs_state == RS_STATE_SEARCH_CYCLE_STARTED) { IWL_DEBUG_RATE(mvm, "Clearing up window stats\n"); - for (i = 0; i < IWL_RATE_COUNT; i++) - rs_rate_scale_clear_window(&(tbl->win[i])); + rs_rate_scale_clear_tbl_windows(tbl); } } } @@ -1751,7 +1755,6 @@ static void rs_rate_scale_perform(struct int low = IWL_RATE_INVALID; int high = IWL_RATE_INVALID; int index; - int i; struct iwl_rate_scale_data *window = NULL; int current_tpt = IWL_INVALID_VALUE; int low_tpt = IWL_INVALID_VALUE; @@ -2036,8 +2039,7 @@ lq_update: if (lq_sta->search_better_tbl) { /* Access the "search" table, clear its history. */ tbl = &(lq_sta->lq_info[(1 - lq_sta->active_tbl)]); - for (i = 0; i < IWL_RATE_COUNT; i++) - rs_rate_scale_clear_window(&(tbl->win[i])); + rs_rate_scale_clear_tbl_windows(tbl); /* Use new "search" start rate */ index = tbl->rate.index; @@ -2301,8 +2303,7 @@ void iwl_mvm_rs_rate_init(struct iwl_mvm lq_sta->lq.sta_id = sta_priv->sta_id; for (j = 0; j < LQ_SIZE; j++) - for (i = 0; i < IWL_RATE_COUNT; i++) - rs_rate_scale_clear_window(&lq_sta->lq_info[j].win[i]); + rs_rate_scale_clear_tbl_windows(&lq_sta->lq_info[j]); lq_sta->flush_timer = 0; lq_sta->last_tx = jiffies; Patches currently in stable-queue which might be from egrumbach@xxxxxxxxx are queue-3.14/iwlwifi-mvm-rs-clear-per-rate-stats-when-aggregation-changes.patch queue-3.14/iwlwifi-add-rs_rate_scale_clear_tbl_windows-helper-function.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html