summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Bunk <bunk@kernel.org>2008-08-05 22:06:51 +0300
committerJohn W. Linville <linville@tuxdriver.com>2008-08-07 09:49:43 -0400
commitb08cbcd4546445740c2a04291204b56f8baf7be2 (patch)
tree9da2fe906ded659dc8e78c768807facbbd498b74
parentf078f209704849c86bd43c0beccfc1f410ed1c66 (diff)
downloadlinux-3.10-b08cbcd4546445740c2a04291204b56f8baf7be2.tar.gz
linux-3.10-b08cbcd4546445740c2a04291204b56f8baf7be2.tar.bz2
linux-3.10-b08cbcd4546445740c2a04291204b56f8baf7be2.zip
ath9k: work around gcc ICEs
This patch works around an internal compiler error (gcc bug #37014) in all gcc 4.2 compilers and the gcc 4.3 series up to at least 4.3.1 on at least powerpc and mips. Many thanks to Andrew Pinski for analyzing the gcc bug. Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath9k/hw.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath9k/hw.c b/drivers/net/wireless/ath9k/hw.c
index 1f6f3934d37..63d0ead1c41 100644
--- a/drivers/net/wireless/ath9k/hw.c
+++ b/drivers/net/wireless/ath9k/hw.c
@@ -4801,7 +4801,11 @@ static void ath9k_hw_9280_spur_mitigate(struct ath_hal *ah,
for (i = 0; i < 123; i++) {
if ((cur_vit_mask > lower) && (cur_vit_mask < upper)) {
- if ((abs(cur_vit_mask - bin)) < 75)
+
+ /* workaround for gcc bug #37014 */
+ volatile int tmp = abs(cur_vit_mask - bin);
+
+ if (tmp < 75)
mask_amt = 1;
else
mask_amt = 0;