]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
staging: wfx: fix handling of MMIC error
authorJérôme Pouiller <jerome.pouiller@silabs.com>
Wed, 7 Oct 2020 10:19:37 +0000 (12:19 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 Oct 2020 09:08:21 +0000 (10:08 +0100)
[ Upstream commit 8d350c14ee5eb62ecd40b0991248bfbce511954d ]

As expected, when the device detect a MMIC error, it returns a specific
status. However, it also strip IV from the frame (don't ask me why).

So, with the current code, mac80211 detects a corrupted frame and it
drops it before it handle the MMIC error. The expected behavior would be
to detect MMIC error then to renegotiate the EAP session.

So, this patch correctly informs mac80211 that IV is not available. So,
mac80211 correctly takes into account the MMIC error.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20201007101943.749898-2-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/staging/wfx/data_rx.c

index 0e959ebc38b565471069ea688c82efc050badcce..a9fb5165b33d994a7b3dc765f90b3c1d81c7b905 100644 (file)
@@ -80,7 +80,7 @@ void wfx_rx_cb(struct wfx_vif *wvif,
                goto drop;
 
        if (arg->status == HIF_STATUS_RX_FAIL_MIC)
-               hdr->flag |= RX_FLAG_MMIC_ERROR;
+               hdr->flag |= RX_FLAG_MMIC_ERROR | RX_FLAG_IV_STRIPPED;
        else if (arg->status)
                goto drop;