aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl4965-base.c
diff options
context:
space:
mode:
authorZhu Yi <yi.zhu@intel.com>2007-09-27 11:27:33 +0800
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 16:53:21 -0700
commit556f8db74809a435195c840f495fd1bf855dfadb (patch)
tree707ac85c06b443207a7eff8afb9353de8a70a943 /drivers/net/wireless/iwlwifi/iwl4965-base.c
parent[PATCH] iwlwifi: Correction for sending beacon in config_ap (diff)
downloadlinux-dev-556f8db74809a435195c840f495fd1bf855dfadb.tar.xz
linux-dev-556f8db74809a435195c840f495fd1bf855dfadb.zip
[PATCH] iwlwifi: clear station table in rxon unconditionally
This patch clears stations table for every rxon command. It removes iwl_rxon_add_station function in 3945. Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to '')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl4965-base.c24
1 files changed, 7 insertions, 17 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index fac130d0e9e5..c663288a675e 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -407,6 +407,7 @@ const u8 BROADCAST_ADDR[ETH_ALEN] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
/**************************************************************/
+#if 0 /* temparary disable till we add real remove station */
static u8 iwl_remove_station(struct iwl_priv *priv, const u8 *addr, int is_ap)
{
int index = IWL_INVALID_STATION;
@@ -442,6 +443,7 @@ out:
spin_unlock_irqrestore(&priv->sta_lock, flags);
return 0;
}
+#endif
static void iwl_clear_stations_table(struct iwl_priv *priv)
{
@@ -852,16 +854,12 @@ int iwl_send_statistics_request(struct iwl_priv *priv)
static int iwl_rxon_add_station(struct iwl_priv *priv,
const u8 *addr, int is_ap)
{
- u8 rc;
-
- /* Remove this station if it happens to already exist */
- iwl_remove_station(priv, addr, is_ap);
-
- rc = iwl_add_station(priv, addr, is_ap, 0);
+ u8 sta_id;
+ sta_id = iwl_add_station(priv, addr, is_ap, 0);
iwl4965_add_station(priv, addr, is_ap);
- return rc;
+ return sta_id;
}
/**
@@ -1149,16 +1147,6 @@ static int iwl_commit_rxon(struct iwl_priv *priv)
"configuration (%d).\n", rc);
return rc;
}
-
- /* The RXON bit toggling will have cleared out the
- * station table in the uCode, so blank it in the driver
- * as well */
- iwl_clear_stations_table(priv);
- } else if (priv->staging_rxon.filter_flags & RXON_FILTER_ASSOC_MSK) {
- /* When switching from non-associated to associated, the
- * uCode clears out the station table; so clear it in the
- * driver as well */
- iwl_clear_stations_table(priv);
}
IWL_DEBUG_INFO("Sending RXON\n"
@@ -1178,6 +1166,8 @@ static int iwl_commit_rxon(struct iwl_priv *priv)
return rc;
}
+ iwl_clear_stations_table(priv);
+
#ifdef CONFIG_IWLWIFI_SENSITIVITY
if (!priv->error_recovering)
priv->start_calib = 0;