aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2800pci.c
diff options
context:
space:
mode:
authorGertjan van Wingerde <gwingerde@gmail.com>2011-01-30 13:22:41 +0100
committerJohn W. Linville <linville@tuxdriver.com>2011-01-31 15:06:24 -0500
commita45f369d477c0e1b15b77c7b09ccfa043097e9ab (patch)
tree23724f1c97db44831efdac9f13a96b945025ec7d /drivers/net/wireless/rt2x00/rt2800pci.c
parent21957c31f6b388c7feaac59e56f765b5cc41377d (diff)
downloadkernel_samsung_smdk4412-a45f369d477c0e1b15b77c7b09ccfa043097e9ab.zip
kernel_samsung_smdk4412-a45f369d477c0e1b15b77c7b09ccfa043097e9ab.tar.gz
kernel_samsung_smdk4412-a45f369d477c0e1b15b77c7b09ccfa043097e9ab.tar.bz2
rt2x00: Fix WPA TKIP Michael MIC failures.
As reported and found by Johannes Stezenbach: rt2800{pci,usb} do not report the Michael MIC in RXed frames, but do check the Michael MIC in hardware. Therefore we have to report to mac80211 that the received frame does not include the Michael MIC. Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2800pci.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt2800pci.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
index 208ea5e..8f4dfc3 100644
--- a/drivers/net/wireless/rt2x00/rt2800pci.c
+++ b/drivers/net/wireless/rt2x00/rt2800pci.c
@@ -675,6 +675,12 @@ static void rt2800pci_fill_rxdone(struct queue_entry *entry,
*/
rxdesc->flags |= RX_FLAG_IV_STRIPPED;
+ /*
+ * The hardware has already checked the Michael Mic and has
+ * stripped it from the frame. Signal this to mac80211.
+ */
+ rxdesc->flags |= RX_FLAG_MMIC_STRIPPED;
+
if (rxdesc->cipher_status == RX_CRYPTO_SUCCESS)
rxdesc->flags |= RX_FLAG_DECRYPTED;
else if (rxdesc->cipher_status == RX_CRYPTO_FAIL_MIC)