Re: [PATCH v2] rt2x00: Fix MMIC Countermeasures.
Sorry about that, I work on other projects that use spaces and I must have missed that when double checking the patch. I sent out a new patch with the correct line length, removal of trailing '.' and indentation fix. On Mon, Aug 7, 2017 at 2:31 AM, Stanislaw Gruszkawrote: > On Thu, Aug 03, 2017 at 11:31:21AM -0400, Michael Skeffingfon wrote: >> @@ -136,10 +136,19 @@ void rt2800mmio_fill_rxdone(struct queue_entry *entry, >>*/ >> rxdesc->flags |= RX_FLAG_MMIC_STRIPPED; >> >> - if (rxdesc->cipher_status == RX_CRYPTO_SUCCESS) >> + if (rxdesc->cipher_status == RX_CRYPTO_SUCCESS) { >> rxdesc->flags |= RX_FLAG_DECRYPTED; >> - else if (rxdesc->cipher_status == RX_CRYPTO_FAIL_MIC) >> +} else if (rxdesc->cipher_status == RX_CRYPTO_FAIL_MIC) { > > Not sure why this happened, but here and on some other places below, > tab was replaced by spaces resulting in wrong indent. > > Stanislaw
Re: [PATCH v2] rt2x00: Fix MMIC Countermeasures.
On Thu, Aug 03, 2017 at 11:31:21AM -0400, Michael Skeffingfon wrote: > @@ -136,10 +136,19 @@ void rt2800mmio_fill_rxdone(struct queue_entry *entry, >*/ > rxdesc->flags |= RX_FLAG_MMIC_STRIPPED; > > - if (rxdesc->cipher_status == RX_CRYPTO_SUCCESS) > + if (rxdesc->cipher_status == RX_CRYPTO_SUCCESS) { > rxdesc->flags |= RX_FLAG_DECRYPTED; > - else if (rxdesc->cipher_status == RX_CRYPTO_FAIL_MIC) > +} else if (rxdesc->cipher_status == RX_CRYPTO_FAIL_MIC) { Not sure why this happened, but here and on some other places below, tab was replaced by spaces resulting in wrong indent. Stanislaw
Re: [PATCH v2] rt2x00: Fix MMIC Countermeasures.
Michael Skeffingfonwrites: > From: Michael Skeffington > > Set RX_FLAG_DECRYPTED in case of MMIC failure so that > ieee80211_rx_h_decrypt() doesnt drop the frame before getting to > ieee80211_rx_h_michael_mic_verify(). > > Signed-off-by: Michael Skeffington The commit log is not wrapped to 72 characters per line and the period is not preferred in the title. But I can fix those. -- Kalle Valo
[PATCH v2] rt2x00: Fix MMIC Countermeasures.
From: Michael SkeffingtonSet RX_FLAG_DECRYPTED in case of MMIC failure so that ieee80211_rx_h_decrypt() doesnt drop the frame before getting to ieee80211_rx_h_michael_mic_verify(). Signed-off-by: Michael Skeffington --- drivers/net/wireless/ralink/rt2x00/rt2800mmio.c | 13 +++-- drivers/net/wireless/ralink/rt2x00/rt2800usb.c | 15 --- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c index ee5276e233fa..ace91a2db756 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c @@ -136,10 +136,19 @@ void rt2800mmio_fill_rxdone(struct queue_entry *entry, */ rxdesc->flags |= RX_FLAG_MMIC_STRIPPED; - if (rxdesc->cipher_status == RX_CRYPTO_SUCCESS) + if (rxdesc->cipher_status == RX_CRYPTO_SUCCESS) { rxdesc->flags |= RX_FLAG_DECRYPTED; - else if (rxdesc->cipher_status == RX_CRYPTO_FAIL_MIC) +} else if (rxdesc->cipher_status == RX_CRYPTO_FAIL_MIC) { + /* +* In order to check the Michael Mic, the packet must have +* been decrypted. Mac80211 doesnt check the MMIC failure +* flag to initiate MMIC countermeasures if the decoded flag +* has not been set. +*/ + rxdesc->flags |= RX_FLAG_DECRYPTED; + rxdesc->flags |= RX_FLAG_MMIC_ERROR; +} } if (rt2x00_get_field32(word, RXD_W3_MY_BSS)) diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c index 685b8e0cd67d..7e5f397c37f9 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c @@ -697,11 +697,20 @@ static void rt2800usb_fill_rxdone(struct queue_entry *entry, * stripped it from the frame. Signal this to mac80211. */ rxdesc->flags |= RX_FLAG_MMIC_STRIPPED; - - if (rxdesc->cipher_status == RX_CRYPTO_SUCCESS) + + if (rxdesc->cipher_status == RX_CRYPTO_SUCCESS) { + rxdesc->flags |= RX_FLAG_DECRYPTED; +} else if (rxdesc->cipher_status == RX_CRYPTO_FAIL_MIC) { + /* +* In order to check the Michael Mic, the packet must have +* been decrypted. Mac80211 doesnt check the MMIC failure +* flag to initiate MMIC countermeasures if the decoded flag +* has not been set. +*/ rxdesc->flags |= RX_FLAG_DECRYPTED; - else if (rxdesc->cipher_status == RX_CRYPTO_FAIL_MIC) + rxdesc->flags |= RX_FLAG_MMIC_ERROR; +} } if (rt2x00_get_field32(word, RXD_W0_MY_BSS)) -- 2.11.0