ath9k: work around gcc ICEs (again)
authorAdrian Bunk <bunk@kernel.org>
Tue, 5 Aug 2008 19:06:51 +0000 (22:06 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 18 Aug 2008 15:05:12 +0000 (11:05 -0400)
(I missed the fact that the original post said to apply this patch
twice... -- JWL)

Original commit log message:

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 bde162f128aba6c70100c1dbd8d1c979061e0411..a17eb130f57431e104a9141596037cfe9ef7e31e 100644 (file)
@@ -5017,7 +5017,11 @@ static void ath9k_hw_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;