aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorMax Stepanov <max.stepanov@intel.com>2008-03-12 19:58:48 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-03-25 16:41:46 -0400
commit8236e183fc53be2b5d81a4f547f9c5b645e10fe0 (patch)
tree3556078a075580c445c85e2d5b5458ca4851864f /drivers/net
parent56ca84c61b667e23cdc6e5179df57b9baa0eddc3 (diff)
iwlwifi: Bug fix, CCMP with HW encryption with AGG
This patch fixes a bug in security. Enables CCMP HW encryption with aggregations. Signed-off-by: Max Stepanov <max.stepanov@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965-commands.h4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl4965-base.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-commands.h b/drivers/net/wireless/iwlwifi/iwl-4965-commands.h
index 35f592dc40c6..1025ffeb8fa8 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965-commands.h
+++ b/drivers/net/wireless/iwlwifi/iwl-4965-commands.h
@@ -1045,6 +1045,10 @@ struct iwl4965_rx_mpdu_res_start {
1045 * MAC header) to DWORD boundary. */ 1045 * MAC header) to DWORD boundary. */
1046#define TX_CMD_FLG_MH_PAD_MSK __constant_cpu_to_le32(1 << 20) 1046#define TX_CMD_FLG_MH_PAD_MSK __constant_cpu_to_le32(1 << 20)
1047 1047
1048/* accelerate aggregation support
1049 * 0 - no CCMP encryption; 1 - CCMP encryption */
1050#define TX_CMD_FLG_AGG_CCMP_MSK __constant_cpu_to_le32(1 << 22)
1051
1048/* HCCA-AP - disable duration overwriting. */ 1052/* HCCA-AP - disable duration overwriting. */
1049#define TX_CMD_FLG_DUR_MSK __constant_cpu_to_le32(1 << 25) 1053#define TX_CMD_FLG_DUR_MSK __constant_cpu_to_le32(1 << 25)
1050 1054
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index 0b7335181719..d0cb36b9efe3 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -2427,6 +2427,8 @@ static void iwl4965_build_tx_cmd_hwcrypto(struct iwl4965_priv *priv,
2427 case ALG_CCMP: 2427 case ALG_CCMP:
2428 cmd->cmd.tx.sec_ctl = TX_CMD_SEC_CCM; 2428 cmd->cmd.tx.sec_ctl = TX_CMD_SEC_CCM;
2429 memcpy(cmd->cmd.tx.key, keyinfo->key, keyinfo->keylen); 2429 memcpy(cmd->cmd.tx.key, keyinfo->key, keyinfo->keylen);
2430 if (ctl->flags & IEEE80211_TXCTL_AMPDU)
2431 cmd->cmd.tx.tx_flags |= TX_CMD_FLG_AGG_CCMP_MSK;
2430 IWL_DEBUG_TX("tx_cmd with aes hwcrypto\n"); 2432 IWL_DEBUG_TX("tx_cmd with aes hwcrypto\n");
2431 break; 2433 break;
2432 2434