summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex/uap_event.c
diff options
context:
space:
mode:
authorAvinash Patil2013-05-18 02:50:23 +0200
committerJohn W. Linville2013-05-22 21:08:54 +0200
commit0f9e9b8ba72bc75ee6189d0e86639f7e7a494a30 (patch)
treec01e5f8021491c49dee446131b0c9b766905165f /drivers/net/wireless/mwifiex/uap_event.c
parentmwifiex: avoid deleting all stations during mwifiex_del_sta_entry() (diff)
downloadkernel-qcow2-linux-0f9e9b8ba72bc75ee6189d0e86639f7e7a494a30.tar.gz
kernel-qcow2-linux-0f9e9b8ba72bc75ee6189d0e86639f7e7a494a30.tar.xz
kernel-qcow2-linux-0f9e9b8ba72bc75ee6189d0e86639f7e7a494a30.zip
mwifiex: add del_station handler
This patch adds cfg80211 del_station handler for mwifiex. If bss is not started or there are no stations in associated stations list, no action is taken. If argument received is null/broadcast mac, all stations in associated station list are deauthenticated. Patch also deletes related RxReorder stream and TxBA stream tables for related station. Signed-off-by: Avinash Patil <patila@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex/uap_event.c')
-rw-r--r--drivers/net/wireless/mwifiex/uap_event.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/wireless/mwifiex/uap_event.c b/drivers/net/wireless/mwifiex/uap_event.c
index 77fb533ae10a..718066577c6c 100644
--- a/drivers/net/wireless/mwifiex/uap_event.c
+++ b/drivers/net/wireless/mwifiex/uap_event.c
@@ -292,3 +292,19 @@ int mwifiex_process_uap_event(struct mwifiex_private *priv)
return 0;
}
+
+/* This function deletes station entry from associated station list.
+ * Also if both AP and STA are 11n enabled, RxReorder tables and TxBA stream
+ * tables created for this station are deleted.
+ */
+void mwifiex_uap_del_sta_data(struct mwifiex_private *priv,
+ struct mwifiex_sta_node *node)
+{
+ if (priv->ap_11n_enabled && node->is_11n_enabled) {
+ mwifiex_11n_del_rx_reorder_tbl_by_ta(priv, node->mac_addr);
+ mwifiex_del_tx_ba_stream_tbl_by_ra(priv, node->mac_addr);
+ }
+ mwifiex_del_sta_entry(priv, node->mac_addr);
+
+ return;
+}