summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
diff options
context:
space:
mode:
authorXinming Hu <huxm@marvell.com>2016-04-05 01:04:39 -0700
committerKalle Valo <kvalo@codeaurora.org>2016-04-07 19:42:25 +0300
commitbf00dc22bc7a72d58fd1945814321b30948dc83b (patch)
tree55945622e909dafed3cd7fe4837d7896b27a4cf5 /drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
parentad5ca845e3d194703be82ad4a2f3042f2e198e2b (diff)
mwifiex: AMSDU Rx frame handling in AP mode
This patch processes sub AMSDU frame received in AP mode. If a packet is multicast/broadcast, it is sent to kernel/upper layer as well as queued back to AP TX queue so that it can be sent to other associated stations. If a packet is unicast and RA is present in associated station list, it is again requeued into AP TX queue. If a packet is unicast and RA is not in associated station list, packet is forwarded to kernel to handle routing logic. Signed-off-by: Xinming Hu <huxm@marvell.com> Signed-off-by: Cathy Luo <cluo@marvell.com> Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c')
-rw-r--r--drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c b/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
index 09578c6cde59..a74cc43b1953 100644
--- a/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
+++ b/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
@@ -59,7 +59,10 @@ static int mwifiex_11n_dispatch_amsdu_pkt(struct mwifiex_private *priv,
skb->len);
}
- ret = mwifiex_recv_packet(priv, rx_skb);
+ if (priv->bss_role == MWIFIEX_BSS_ROLE_UAP)
+ ret = mwifiex_uap_recv_packet(priv, rx_skb);
+ else
+ ret = mwifiex_recv_packet(priv, rx_skb);
if (ret == -1)
mwifiex_dbg(priv->adapter, ERROR,
"Rx of A-MSDU failed");