ath9k: work around gcc ICEs
authorAdrian Bunk <bunk@kernel.org>
Tue, 5 Aug 2008 19:06:51 +0000 (22:06 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 7 Aug 2008 13:49:43 +0000 (09:49 -0400)
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>
drivers/net/wireless/ath9k/hw.c

index 1f6f3934d37974bb55b6555be63d87500fda2e4c..63d0ead1c4126dd88e41d05555d114b4e37b9261 100644 (file)
@@ -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;