mirror of https://gitee.com/openkylin/linux.git
mwifiex: set TDLS flags for AMSDU packets
This patch fixes an issue where AMSDU packets for TDLS link would flow over infra link. This happened because we were missing setting TDLS flag in TxPD on AMSDU packets. 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>
This commit is contained in:
parent
c1078bc98a
commit
71e17ee57c
|
@ -100,6 +100,7 @@ mwifiex_11n_form_amsdu_txpd(struct mwifiex_private *priv,
|
|||
struct sk_buff *skb)
|
||||
{
|
||||
struct txpd *local_tx_pd;
|
||||
struct mwifiex_txinfo *tx_info = MWIFIEX_SKB_TXCB(skb);
|
||||
|
||||
skb_push(skb, sizeof(*local_tx_pd));
|
||||
|
||||
|
@ -118,6 +119,9 @@ mwifiex_11n_form_amsdu_txpd(struct mwifiex_private *priv,
|
|||
local_tx_pd->tx_pkt_length = cpu_to_le16(skb->len -
|
||||
sizeof(*local_tx_pd));
|
||||
|
||||
if (tx_info->flags & MWIFIEX_BUF_FLAG_TDLS_PKT)
|
||||
local_tx_pd->flags |= MWIFIEX_TXPD_FLAGS_TDLS_PACKET;
|
||||
|
||||
if (local_tx_pd->tx_control == 0)
|
||||
/* TxCtrl set by user or default */
|
||||
local_tx_pd->tx_control = cpu_to_le32(priv->pkt_tx_ctrl);
|
||||
|
@ -183,6 +187,9 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
|
|||
|
||||
tx_info_aggr->bss_type = tx_info_src->bss_type;
|
||||
tx_info_aggr->bss_num = tx_info_src->bss_num;
|
||||
|
||||
if (tx_info_src->flags & MWIFIEX_BUF_FLAG_TDLS_PKT)
|
||||
tx_info_aggr->flags |= MWIFIEX_BUF_FLAG_TDLS_PKT;
|
||||
skb_aggr->priority = skb_src->priority;
|
||||
|
||||
do_gettimeofday(&tv);
|
||||
|
|
Loading…
Reference in New Issue