| From 123877b80ed62c3b897c53357b622574c023b642 Mon Sep 17 00:00:00 2001 |
| From: Wey-Yi Guy <wey-yi.w.guy@intel.com> |
| Date: Thu, 8 Dec 2011 15:52:00 -0800 |
| Subject: iwlwifi: do not set the sequence control bit is not needed |
| |
| From: Wey-Yi Guy <wey-yi.w.guy@intel.com> |
| |
| commit 123877b80ed62c3b897c53357b622574c023b642 upstream. |
| |
| Check the IEEE80211_TX_CTL_ASSIGN_SEQ flag from mac80211, then decide how to |
| set the TX_CMD_FLG_SEQ_CTL_MSK bit. Setting the wrong bit in BAR frame whill |
| make the firmware to increment the sequence number which is incorrect and |
| cause unknown behavior. |
| |
| Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> |
| Signed-off-by: John W. Linville <linville@tuxdriver.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c |
| +++ b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c |
| @@ -385,7 +385,10 @@ static void iwlagn_tx_cmd_build_basic(st |
| tx_cmd->tid_tspec = qc[0] & 0xf; |
| tx_flags &= ~TX_CMD_FLG_SEQ_CTL_MSK; |
| } else { |
| - tx_flags |= TX_CMD_FLG_SEQ_CTL_MSK; |
| + if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ) |
| + tx_flags |= TX_CMD_FLG_SEQ_CTL_MSK; |
| + else |
| + tx_flags &= ~TX_CMD_FLG_SEQ_CTL_MSK; |
| } |
| |
| priv->cfg->ops->utils->tx_cmd_protection(priv, info, fc, &tx_flags); |