diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2008-03-19 19:41:42 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-03-25 16:41:52 -0400 |
commit | 17e476b8db13790c03e2c46d93abc71468fca47e (patch) | |
tree | 8981190d5696cb984939a1fbca8dab4120aa33c4 /drivers/net/wireless/iwlwifi/iwl4965-base.c | |
parent | deb09c435e3f947f8b2c9d5df6a9c0a5b472b125 (diff) |
iwlwifi-2.6: RX status translation to old scheme
This patch adds translation for the RX status of an incoming packet.
The incoming status has to be translated to the old scheme in order to know
if the decryption has been done, MIC failure has occured, TTAK is valid etc...
This translation is mandatory for all RX packets when using 5300 and for
all HT packets using 4965.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@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/wireless/iwlwifi/iwl4965-base.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c index fc3e23a2d8eb..8de301d1da8e 100644 --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c | |||
@@ -2856,6 +2856,12 @@ void iwl4965_set_decrypted_flag(struct iwl_priv *priv, struct sk_buff *skb, | |||
2856 | IWL_DEBUG_RX("decrypt_res:0x%x\n", decrypt_res); | 2856 | IWL_DEBUG_RX("decrypt_res:0x%x\n", decrypt_res); |
2857 | switch (decrypt_res & RX_RES_STATUS_SEC_TYPE_MSK) { | 2857 | switch (decrypt_res & RX_RES_STATUS_SEC_TYPE_MSK) { |
2858 | case RX_RES_STATUS_SEC_TYPE_TKIP: | 2858 | case RX_RES_STATUS_SEC_TYPE_TKIP: |
2859 | /* The uCode has got a bad phase 1 Key, pushes the packet. | ||
2860 | * Decryption will be done in SW. */ | ||
2861 | if ((decrypt_res & RX_RES_STATUS_DECRYPT_TYPE_MSK) == | ||
2862 | RX_RES_STATUS_BAD_KEY_TTAK) | ||
2863 | break; | ||
2864 | |||
2859 | if ((decrypt_res & RX_RES_STATUS_DECRYPT_TYPE_MSK) == | 2865 | if ((decrypt_res & RX_RES_STATUS_DECRYPT_TYPE_MSK) == |
2860 | RX_RES_STATUS_BAD_ICV_MIC) | 2866 | RX_RES_STATUS_BAD_ICV_MIC) |
2861 | stats->flag |= RX_FLAG_MMIC_ERROR; | 2867 | stats->flag |= RX_FLAG_MMIC_ERROR; |