summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath/ath9k/htc.h
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2015-05-14 08:34:48 (GMT)
committerKalle Valo <kvalo@codeaurora.org>2015-05-26 10:54:23 (GMT)
commit191f1aeeb93bb58e56f4d1868294ae22f3f67d4e (patch)
tree167648df470def9ae6b4569a3db6cfe851387349 /drivers/net/wireless/ath/ath9k/htc.h
parent22f44150aad7a1d6b074ab6cf59abee61c7187c6 (diff)
downloadlinux-191f1aeeb93bb58e56f4d1868294ae22f3f67d4e.tar.xz
ath9k_htc: memory corruption calling set_bit()
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. Fixes: d8a2c51cdcae ('ath9k_htc: Use atomic operations for op_flags') Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/htc.h')
-rw-r--r--drivers/net/wireless/ath/ath9k/htc.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/ath/ath9k/htc.h
index e82a0d4..5dbc617 100644
--- a/drivers/net/wireless/ath/ath9k/htc.h
+++ b/drivers/net/wireless/ath/ath9k/htc.h
@@ -440,9 +440,9 @@ static inline void ath9k_htc_stop_btcoex(struct ath9k_htc_priv *priv)
}
#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 6
enum htc_op_flags {
HTC_FWFLAG_NO_RMW,