diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-09-14 20:38:26 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-09-15 00:14:27 +0400 |
commit | 3ae74c33c4f799f6bf6d67240a94a0814a8f1944 (patch) | |
tree | 9a36d507571c8cbc2169d4108061d60e77924c38 /drivers/net/wireless/ath/ath9k/ar9003_mac.c | |
parent | 2944f45d9db851e186774df7c9cbf075f4a585c6 (diff) | |
download | linux-3ae74c33c4f799f6bf6d67240a94a0814a8f1944.tar.xz |
ath9k_hw: handle rx key miss
If AR_KeyMiss is set in the rx descriptor and AR_RxFrameOK is unset,
the hardware could not locate a valid key during a decryption attempt.
In this case, the frame must not be reported as decrypted, otherwise
mac80211 sees only random garbage.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Cc: stable@kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/ar9003_mac.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ar9003_mac.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mac.c b/drivers/net/wireless/ath/ath9k/ar9003_mac.c index a462da23e87e..3b424ca1ba84 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c @@ -616,7 +616,8 @@ int ath9k_hw_process_rxdesc_edma(struct ath_hw *ah, struct ath_rx_status *rxs, rxs->rs_status |= ATH9K_RXERR_DECRYPT; } else if (rxsp->status11 & AR_MichaelErr) { rxs->rs_status |= ATH9K_RXERR_MIC; - } + } else if (rxsp->status11 & AR_KeyMiss) + rxs->rs_status |= ATH9K_RXERR_DECRYPT; } return 0; |