diff mbox

ath9k_htc: fix random decryption failure

Message ID 20140912203651.GA10815@sig21.net (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Johannes Stezenbach Sept. 12, 2014, 8:36 p.m. UTC
In v3.15 the driver stopped to accept network packets after successful
authentification, which could be worked around by passing the
nohwcrypt=1 module parameter.  This was not reproducible by
everyone, and showed random behaviour in some tests.
It was caused by an uninitialized variable introduced
in 4ed1a8d4a257 ("ath9k_htc: use ath9k_cmn_rx_accept") and
used in 341b29b9cd2f ("ath9k_htc: use ath9k_cmn_rx_skb_postprocess").

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=78581
Fixes: 341b29b9cd2f ("ath9k_htc: use ath9k_cmn_rx_skb_postprocess")
Signed-off-by: Johannes Stezenbach <js@sig21.net>

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Oleksij Rempel Sept. 13, 2014, 6:04 a.m. UTC | #1
Am 12.09.2014 um 22:36 schrieb Johannes Stezenbach:
> In v3.15 the driver stopped to accept network packets after successful
> authentification, which could be worked around by passing the
> nohwcrypt=1 module parameter.  This was not reproducible by
> everyone, and showed random behaviour in some tests.
> It was caused by an uninitialized variable introduced
> in 4ed1a8d4a257 ("ath9k_htc: use ath9k_cmn_rx_accept") and
> used in 341b29b9cd2f ("ath9k_htc: use ath9k_cmn_rx_skb_postprocess").
> 
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=78581
> Fixes: 341b29b9cd2f ("ath9k_htc: use ath9k_cmn_rx_skb_postprocess")
> Signed-off-by: Johannes Stezenbach <js@sig21.net>
> 
> diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
> index bb86eb2..f0484b1 100644
> --- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
> +++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
> @@ -978,7 +978,7 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv,
>  	struct ath_hw *ah = common->ah;
>  	struct ath_htc_rx_status *rxstatus;
>  	struct ath_rx_status rx_stats;
> -	bool decrypt_error;
> +	bool decrypt_error = false;
>  
>  	if (skb->len < HTC_RX_FRAME_HEADER_SIZE) {
>  		ath_err(common, "Corrupted RX frame, dropping (len: %d)\n",
> 

ACK.
diff mbox

Patch

diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
index bb86eb2..f0484b1 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
@@ -978,7 +978,7 @@  static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv,
 	struct ath_hw *ah = common->ah;
 	struct ath_htc_rx_status *rxstatus;
 	struct ath_rx_status rx_stats;
-	bool decrypt_error;
+	bool decrypt_error = false;
 
 	if (skb->len < HTC_RX_FRAME_HEADER_SIZE) {
 		ath_err(common, "Corrupted RX frame, dropping (len: %d)\n",