summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/marvell
diff options
context:
space:
mode:
authorAmitkumar Karwar <akarwar@marvell.com>2015-12-14 04:15:11 -0800
committerKalle Valo <kvalo@codeaurora.org>2015-12-30 16:58:02 +0200
commit776f742040ca5eb6242c60f29ac73d5752a5b621 (patch)
tree305381c3b0c26fc9c748c3a96717489277e82d84 /drivers/net/wireless/marvell
parent76ae3e26ea4341cd18705b6f78d1dbf10bb9de35 (diff)
downloadop-kernel-dev-776f742040ca5eb6242c60f29ac73d5752a5b621.zip
op-kernel-dev-776f742040ca5eb6242c60f29ac73d5752a5b621.tar.gz
mwifiex: fix AMPDU not setup on TDLS link problem
Sometimes AP sends TDLS setup response as AMSDU packet. As driver doesn't parse it and update peer station's 11n capability in this case, AMPDU doesn't get setup. This patch calls mwifiex_process_tdls_action_frame() in AMSDU Rx path to fix the problem. Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Cathy Luo <cluo@marvell.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/marvell')
-rw-r--r--drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c b/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
index b3970a8..09578c6 100644
--- a/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
+++ b/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
@@ -48,7 +48,17 @@ static int mwifiex_11n_dispatch_amsdu_pkt(struct mwifiex_private *priv,
priv->wdev.iftype, 0, false);
while (!skb_queue_empty(&list)) {
+ struct rx_packet_hdr *rx_hdr;
+
rx_skb = __skb_dequeue(&list);
+ rx_hdr = (struct rx_packet_hdr *)rx_skb->data;
+ if (ISSUPP_TDLS_ENABLED(priv->adapter->fw_cap_info) &&
+ ntohs(rx_hdr->eth803_hdr.h_proto) == ETH_P_TDLS) {
+ mwifiex_process_tdls_action_frame(priv,
+ (u8 *)rx_hdr,
+ skb->len);
+ }
+
ret = mwifiex_recv_packet(priv, rx_skb);
if (ret == -1)
mwifiex_dbg(priv->adapter, ERROR,
OpenPOWER on IntegriCloud