diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/recv.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/recv.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c index 0e666fbe084..7e1a91af149 100644 --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c @@ -822,6 +822,14 @@ static bool ath9k_rx_accept(struct ath_common *common,  		(ATH9K_RXERR_DECRYPT | ATH9K_RXERR_CRC | ATH9K_RXERR_MIC |  		 ATH9K_RXERR_KEYMISS)); +	/* +	 * Key miss events are only relevant for pairwise keys where the +	 * descriptor does contain a valid key index. This has been observed +	 * mostly with CCMP encryption. +	 */ +	if (rx_stats->rs_keyix == ATH9K_RXKEYIX_INVALID) +		rx_stats->rs_status &= ~ATH9K_RXERR_KEYMISS; +  	if (!rx_stats->rs_datalen)  		return false;          /*  |