diff options
author | Johannes Berg <johannes.berg@intel.com> | 2010-04-28 08:44:52 -0700 |
---|---|---|
committer | Reinette Chatre <reinette.chatre@intel.com> | 2010-05-10 15:08:53 -0700 |
commit | 1fa61b2e793dad51271c7ce39377daade51261d7 (patch) | |
tree | 1165dc3d721f1db83a459687b70bb3b4fdfafec9 /drivers/net/wireless/iwlwifi/iwl-agn-lib.c | |
parent | c0222df86e55576ef879795b5a158c46e6653f07 (diff) | |
download | kernel_samsung_smdk4412-1fa61b2e793dad51271c7ce39377daade51261d7.zip kernel_samsung_smdk4412-1fa61b2e793dad51271c7ce39377daade51261d7.tar.gz kernel_samsung_smdk4412-1fa61b2e793dad51271c7ce39377daade51261d7.tar.bz2 |
iwlwifi: manage IBSS station properly
Currently iwlwifi will eventually exhaust the station
table when adding the BSSID station for IBSS mode,
unless the interface is set down.
The new mac80211 ibss joined/left notification allows
us to fix that easily by moving the code to add the
IBSS station to the notification, and also adding
code to remove it again when we leave the IBSS.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn-lib.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c index a273474..50ff313 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c @@ -38,6 +38,7 @@ #include "iwl-helpers.h" #include "iwl-agn-hw.h" #include "iwl-agn.h" +#include "iwl-sta.h" static inline u32 iwlagn_get_scd_ssn(struct iwl5000_tx_resp *tx_resp) { @@ -1513,3 +1514,11 @@ void iwlagn_request_scan(struct iwl_priv *priv) /* inform mac80211 scan aborted */ queue_work(priv->workqueue, &priv->scan_completed); } + +int iwlagn_manage_ibss_station(struct iwl_priv *priv, + struct ieee80211_vif *vif, bool add) +{ + if (add) + return iwl_add_local_station(priv, vif->bss_conf.bssid, true); + return iwl_remove_station(priv, vif->bss_conf.bssid); +} |