aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-08-23 04:46:40 -0400
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2010-08-27 12:15:20 -0400
commit8bd413e611d4324f17e54a2a89b4d09216c22a37 (patch)
tree64385ef0b39d6216bc5cacab03b68a18c90b92a5 /drivers/net/wireless/iwlwifi/iwl-agn-lib.c
parentc90cbbbd78e45abbefd5e9e1c3c179d6126e3ddf (diff)
iwlwifi: move virtual interface pointer into context
iwlwifi occasionally needs to find the virtual interface pointer to give it to mac80211, but right now it only keeps one. Move it into the context so that we can keep one pointer each. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn-lib.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-lib.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
index cb3c173e7c86..7002d7d0fac4 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
@@ -1720,6 +1720,7 @@ static void iwlagn_bt_traffic_change_work(struct work_struct *work)
1720{ 1720{
1721 struct iwl_priv *priv = 1721 struct iwl_priv *priv =
1722 container_of(work, struct iwl_priv, bt_traffic_change_work); 1722 container_of(work, struct iwl_priv, bt_traffic_change_work);
1723 struct iwl_rxon_context *ctx;
1723 int smps_request = -1; 1724 int smps_request = -1;
1724 1725
1725 IWL_DEBUG_INFO(priv, "BT traffic load changes: %d\n", 1726 IWL_DEBUG_INFO(priv, "BT traffic load changes: %d\n",
@@ -1747,9 +1748,12 @@ static void iwlagn_bt_traffic_change_work(struct work_struct *work)
1747 if (priv->cfg->ops->lib->update_chain_flags) 1748 if (priv->cfg->ops->lib->update_chain_flags)
1748 priv->cfg->ops->lib->update_chain_flags(priv); 1749 priv->cfg->ops->lib->update_chain_flags(priv);
1749 1750
1750 if (smps_request != -1 && 1751 if (smps_request != -1) {
1751 priv->vif && priv->vif->type == NL80211_IFTYPE_STATION) 1752 for_each_context(priv, ctx) {
1752 ieee80211_request_smps(priv->vif, smps_request); 1753 if (ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION)
1754 ieee80211_request_smps(ctx->vif, smps_request);
1755 }
1756 }
1753 1757
1754 mutex_unlock(&priv->mutex); 1758 mutex_unlock(&priv->mutex);
1755} 1759}