Patch "ath9k_htc: memory corruption calling set_bit()" has been added to the 4.1-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
ath9k_htc: memory corruption calling set_bit()
to the 4.1-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
ath9k_htc-memory-corruption-calling-set_bit.patch
and it can be found in the queue-4.1 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
191f1aeeb93bb58e56f4d1868294ae22f3f67d4eMon Sep 17 00:00:00 2001
From: Dan Carpenter <[email protected]>
Date: Thu, 14 May 2015 11:34:48 +0300
Subject: ath9k_htc: memory corruption calling set_bit()
From: Dan Carpenter <[email protected]>
commit 191f1aeeb93bb58e56f4d1868294ae22f3f67d4e upstream.
In d8a2c51cdcae ('ath9k_htc: Use atomic operations for op_flags') we changed things like this:
- if (priv->op_flags & OP_TSF_RESET) {
+ if (test_bit(OP_TSF_RESET, &priv->op_flags)) {
The problem is that test_bit() takes a bit number and not a mask. It means that when we do:
set_bit(OP_TSF_RESET, &priv->op_flags);
Then it sets the (1 << 6) bit instead of the 6 bit so we are setting a bit which is past the end of the unsigned long.
--- drivers/net/wireless/ath/ath9k/htc.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/net/wireless/ath/ath9k/htc.h +3 -3
@@ -440,9 +440,9 @@ static inline void ath9k_htc_stop_btcoex }#endif /* CONFIG_ATH9K_BTCOEX_SUPPORT */ -#define OP_BT_PRIORITY_DETECTED BIT(3) -#define OP_BT_SCAN BIT(4) -#define OP_TSF_RESET BIT(6) +#define OP_BT_PRIORITY_DETECTED 3 +#define OP_BT_SCAN 4 +#define OP_TSF_RESET 6enum htc_op_flags {HTC_FWFLAG_NO_RMW ,
Patches currently in stable-queue which might be from [email protected] are
queue-4.1/asoc-imx-wm8962-add-a-missing-error-check.patch queue-4.1/ath9k_htc-memory-corruption-calling-set_bit.patch