From: Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx> After the hw reports a decryption error, the flag decrypt_error is set to true in ath9k_rx_accept. Since this flag is initialized to false just outside ath_rx_tasklet while cycle, all subsequent frames are marked as corrupted until ath_rx_tasklet ends. Fix the issue initializing decrypt_error flag at the begging of the cycle. Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx> --- --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c @@ -1044,7 +1044,6 @@ struct ieee80211_hw *hw = sc->hw; struct ieee80211_hdr *hdr; int retval; - bool decrypt_error = false; struct ath_rx_status rs; enum ath9k_rx_qtype qtype; bool edma = !!(ah->caps.hw_caps & ATH9K_HW_CAP_EDMA); @@ -1066,6 +1065,7 @@ tsf_lower = tsf & 0xffffffff; do { + bool decrypt_error = false; /* If handling rx interrupt and flush is in progress => exit */ if (test_bit(SC_OP_RXFLUSH, &sc->sc_flags) && (flush == 0)) break; -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html