diff options
author | Eyal Shapira <eyal@wizery.com> | 2014-01-07 11:19:35 -0500 |
---|---|---|
committer | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2014-01-13 11:42:54 -0500 |
commit | 75d3e2d693a695d2a9df27de697fb73cb3f34c23 (patch) | |
tree | c34a6e560417850c28a814a378cd3c504147368d /drivers/net/wireless/iwlwifi/mvm/rs.c | |
parent | 91b0d1198417cf4fd9a7bd4138b6909f0b359099 (diff) |
iwlwifi: mvm: rs: fix handling of column switch error
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>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/rs.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/rs.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/rs.c b/drivers/net/wireless/iwlwifi/mvm/rs.c index c9ff41c514ae..54887b952eb5 100644 --- a/drivers/net/wireless/iwlwifi/mvm/rs.c +++ b/drivers/net/wireless/iwlwifi/mvm/rs.c | |||
@@ -1591,6 +1591,8 @@ static int rs_switch_to_column(struct iwl_mvm *mvm, | |||
1591 | search_tbl->column = col_id; | 1591 | search_tbl->column = col_id; |
1592 | rs_set_expected_tpt_table(lq_sta, search_tbl); | 1592 | rs_set_expected_tpt_table(lq_sta, search_tbl); |
1593 | 1593 | ||
1594 | lq_sta->visited_columns |= BIT(col_id); | ||
1595 | |||
1594 | /* Get the best matching rate if we're changing modes. e.g. | 1596 | /* Get the best matching rate if we're changing modes. e.g. |
1595 | * SISO->MIMO, LEGACY->SISO, MIMO->SISO | 1597 | * SISO->MIMO, LEGACY->SISO, MIMO->SISO |
1596 | */ | 1598 | */ |
@@ -1614,7 +1616,6 @@ static int rs_switch_to_column(struct iwl_mvm *mvm, | |||
1614 | IWL_DEBUG_RATE(mvm, "Switched to column %d: Index %d\n", | 1616 | IWL_DEBUG_RATE(mvm, "Switched to column %d: Index %d\n", |
1615 | col_id, rate->index); | 1617 | col_id, rate->index); |
1616 | 1618 | ||
1617 | lq_sta->visited_columns |= BIT(col_id); | ||
1618 | return 0; | 1619 | return 0; |
1619 | 1620 | ||
1620 | err: | 1621 | err: |