All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avinash Patil <patila@marvell.com>
To: <linux-wireless@vger.kernel.org>
Cc: <akarwar@marvell.com>, <cluo@marvell.com>, <huxm@marvell.com>,
	Avinash Patil <patila@marvell.com>
Subject: [PATCHv4 16/17] mwifiex: using right tid for addressing ra_list
Date: Mon, 1 Jun 2015 23:32:14 +0530	[thread overview]
Message-ID: <1433181735-15712-17-git-send-email-patila@marvell.com> (raw)
In-Reply-To: <1433181735-15712-1-git-send-email-patila@marvell.com>

From: Xinming Hu <huxm@marvell.com>

This patch fixes issue with the accessing correct ra_list by
downgrading corresponding tid number.

Alternatively, ra lists are created in mwifiex_wmm_add_buf_txqueue
using downgraded tid number.

Signed-off-by: Xinming Hu <huxm@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
---
 drivers/net/wireless/mwifiex/11n.c           | 11 ++++++++---
 drivers/net/wireless/mwifiex/11n_rxreorder.c |  5 ++++-
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/mwifiex/11n.c b/drivers/net/wireless/mwifiex/11n.c
index 8422986..4d8ef49 100644
--- a/drivers/net/wireless/mwifiex/11n.c
+++ b/drivers/net/wireless/mwifiex/11n.c
@@ -156,7 +156,7 @@ int mwifiex_ret_11n_delba(struct mwifiex_private *priv,
 int mwifiex_ret_11n_addba_req(struct mwifiex_private *priv,
 			      struct host_cmd_ds_command *resp)
 {
-	int tid;
+	int tid, tid_down;
 	struct host_cmd_ds_11n_addba_rsp *add_ba_rsp = &resp->params.add_ba_rsp;
 	struct mwifiex_tx_ba_stream_tbl *tx_ba_tbl;
 	struct mwifiex_ra_list_tbl *ra_list;
@@ -167,7 +167,9 @@ int mwifiex_ret_11n_addba_req(struct mwifiex_private *priv,
 
 	tid = (block_ack_param_set & IEEE80211_ADDBA_PARAM_TID_MASK)
 	       >> BLOCKACKPARAM_TID_POS;
-	ra_list = mwifiex_wmm_get_ralist_node(priv, tid, add_ba_rsp->
+
+	tid_down = mwifiex_wmm_downgrade_tid(priv, tid);
+	ra_list = mwifiex_wmm_get_ralist_node(priv, tid_down, add_ba_rsp->
 		peer_mac_addr);
 	if (le16_to_cpu(add_ba_rsp->status_code) != BA_RESULT_SUCCESS) {
 		if (ra_list) {
@@ -530,13 +532,16 @@ void mwifiex_create_ba_tbl(struct mwifiex_private *priv, u8 *ra, int tid,
 	struct mwifiex_tx_ba_stream_tbl *new_node;
 	struct mwifiex_ra_list_tbl *ra_list;
 	unsigned long flags;
+	int tid_down;
 
 	if (!mwifiex_get_ba_tbl(priv, tid, ra)) {
 		new_node = kzalloc(sizeof(struct mwifiex_tx_ba_stream_tbl),
 				   GFP_ATOMIC);
 		if (!new_node)
 			return;
-		ra_list = mwifiex_wmm_get_ralist_node(priv, tid, ra);
+
+		tid_down = mwifiex_wmm_downgrade_tid(priv, tid);
+		ra_list = mwifiex_wmm_get_ralist_node(priv, tid_down, ra);
 		if (ra_list) {
 			ra_list->ba_status = ba_status;
 			ra_list->amsdu_in_ampdu = false;
diff --git a/drivers/net/wireless/mwifiex/11n_rxreorder.c b/drivers/net/wireless/mwifiex/11n_rxreorder.c
index 39d7a95..64401a7 100644
--- a/drivers/net/wireless/mwifiex/11n_rxreorder.c
+++ b/drivers/net/wireless/mwifiex/11n_rxreorder.c
@@ -663,6 +663,7 @@ mwifiex_del_ba_tbl(struct mwifiex_private *priv, int tid, u8 *peer_mac,
 	struct mwifiex_ra_list_tbl *ra_list;
 	u8 cleanup_rx_reorder_tbl;
 	unsigned long flags;
+	int tid_down;
 
 	if (type == TYPE_DELBA_RECEIVE)
 		cleanup_rx_reorder_tbl = (initiator) ? true : false;
@@ -688,7 +689,9 @@ mwifiex_del_ba_tbl(struct mwifiex_private *priv, int tid, u8 *peer_mac,
 				    "event: TID, RA not found in table\n");
 			return;
 		}
-		ra_list = mwifiex_wmm_get_ralist_node(priv, tid, peer_mac);
+
+		tid_down = mwifiex_wmm_downgrade_tid(priv, tid);
+		ra_list = mwifiex_wmm_get_ralist_node(priv, tid_down, peer_mac);
 		if (ra_list) {
 			ra_list->amsdu_in_ampdu = false;
 			ra_list->ba_status = BA_SETUP_NONE;
-- 
1.8.1.4


  parent reply	other threads:[~2015-06-01 12:34 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-01 18:01 [PATCHv4 00/17] mwifiex patches Avinash Patil
2015-06-01 18:01 ` [PATCHv4 01/17] mwifiex: verbose logging for association failure messages Avinash Patil
2015-06-01 19:06   ` Joe Perches
2015-06-02  0:16     ` Julian Calaby
2015-06-01 18:02 ` [PATCHv4 02/17] mwifiex: correct bss_type assignment Avinash Patil
2015-06-01 18:02 ` [PATCHv4 03/17] mwifiex: support AP reset after bss_stop Avinash Patil
2015-06-01 18:02 ` [PATCHv4 04/17] mwifiex: enable 11d after bss reset Avinash Patil
2015-06-01 18:02 ` [PATCHv4 05/17] mwifiex: reset 11h active flag when chandef does not require dfs Avinash Patil
2015-06-01 18:02 ` [PATCHv4 06/17] mwifiex: disable CAC upon radar detection event Avinash Patil
2015-06-01 18:02 ` [PATCHv4 07/17] mwifiex: add cfg80211 get_channel handler Avinash Patil
2015-06-01 18:02 ` [PATCHv4 08/17] mwifiex: maintain station statistic in uap mode Avinash Patil
2015-06-01 18:02 ` [PATCHv4 09/17] mwifiex: add sta_list firmware command Avinash Patil
2015-06-01 18:02 ` [PATCHv4 10/17] mwifiex: dump station support in uap mode Avinash Patil
2015-06-01 18:02 ` [PATCHv4 11/17] mwifiex: parse power constraint IE from Tail Avinash Patil
2015-06-01 18:02 ` [PATCHv4 12/17] mwifiex: support downloading IEs from tail Avinash Patil
2015-06-01 18:02 ` [PATCHv4 13/17] mwifiex: drop block-ack action frames Avinash Patil
2015-06-01 18:02 ` [PATCHv4 14/17] mwifiex: advertise PS ON by default support to cfg80211 Avinash Patil
2015-06-01 18:02 ` [PATCHv4 15/17] mwifiex: update AP WMM settings from BSS_START event Avinash Patil
2015-06-01 18:02 ` Avinash Patil [this message]
2015-06-01 18:02 ` [PATCHv4 17/17] mwifiex: do not decrease tx_pending for AMSDU packet once more Avinash Patil
2015-06-02 13:40 ` [PATCHv4 00/17] mwifiex patches Kalle Valo
2015-06-02 13:46   ` Avinash Patil

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1433181735-15712-17-git-send-email-patila@marvell.com \
    --to=patila@marvell.com \
    --cc=akarwar@marvell.com \
    --cc=cluo@marvell.com \
    --cc=huxm@marvell.com \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.