2014-09-12 20:37:19

by Johannes Stezenbach

[permalink] [raw]
Subject: [PATCH] ath9k_htc: fix random decryption failure

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 <[email protected]>

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",


2014-09-13 06:04:24

by Oleksij Rempel

[permalink] [raw]
Subject: Re: [PATCH] ath9k_common: fix random decryption failure

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 <[email protected]>
>
> 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.

--
Regards,
Oleksij


Attachments:
signature.asc (213.00 B)
OpenPGP digital signature