iwlwifi: mvm: rs: fix handling of column switch error
authorEyal Shapira <eyal@wizery.com>
Tue, 7 Jan 2014 16:19:35 +0000 (18:19 +0200)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Mon, 13 Jan 2014 16:42:54 +0000 (18:42 +0200)
If we can't switch to a column because no rates are supported
in that column this led to a state where the search cycle
got stuck and never ended. This in turn also led to aggregation
not being turned on. Fix this by marking a column as
visited if we can't switch to it.

Reported-and-tested-by: Karl Beldan <karl.beldan@gmail.com>
Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/mvm/rs.c

index c9ff41c514aee1a0b01a1043aff6e40497c14eb1..54887b952eb5cd411893a70743032a6c6d189ac7 100644 (file)
@@ -1591,6 +1591,8 @@ static int rs_switch_to_column(struct iwl_mvm *mvm,
        search_tbl->column = col_id;
        rs_set_expected_tpt_table(lq_sta, search_tbl);
 
+       lq_sta->visited_columns |= BIT(col_id);
+
        /* Get the best matching rate if we're changing modes. e.g.
         * SISO->MIMO, LEGACY->SISO, MIMO->SISO
         */
@@ -1614,7 +1616,6 @@ static int rs_switch_to_column(struct iwl_mvm *mvm,
        IWL_DEBUG_RATE(mvm, "Switched to column %d: Index %d\n",
                       col_id, rate->index);
 
-       lq_sta->visited_columns |= BIT(col_id);
        return 0;
 
 err: