From: Ilan Peer <ilan.p...@intel.com>

Upstream commit e19ebcab01cc130fa832764d453b263460ec3b91. I
had erroneously thought this didn't apply to 3.5 but Daniel
ran into the error there.

It is possible that the BSS context is not active (for example
when the current mode is set to GO), or that the vif->type is
different than station. In such a case we cannot
call mac80211 to report the average rssi for the interface
(the function assumes that the vif is valid and that the type
is station).

Reported-by: Daniel J Blueman <dan...@quora.org>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumb...@intel.com>
Signed-off-by: Ilan Peer <ilan.p...@intel.com>
Signed-off-by: Johannes Berg <johannes.b...@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-agn-lib.c |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c 
b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
index e55ec6c..c31072d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
@@ -617,6 +617,11 @@ static bool iwlagn_fill_txpower_mode(struct iwl_priv *priv,
        struct iwl_rxon_context *ctx = &priv->contexts[IWL_RXON_CTX_BSS];
        int ave_rssi;
 
+       if (!ctx->vif || (ctx->vif->type != NL80211_IFTYPE_STATION)) {
+               IWL_DEBUG_INFO(priv, "BSS ctx not active or not in sta mode\n");
+               return false;
+       }
+
        ave_rssi = ieee80211_ave_rssi(ctx->vif);
        if (!ave_rssi) {
                /* no rssi data, no changes to reduce tx power */
-- 
1.7.10.4


--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to