[2.6 patch] ath9k: work around gcc ICEs

Previous thread: [PATCH] X86 Architecture: HPET Rework for SB700A12 by crane cai on Tuesday, August 5, 2008 - 2:20 am. (1 message)

Next thread: [PATCH 2.6.27-rc1-git5 1/26] mdb: add include file references by jmerkey on Tuesday, August 5, 2008 - 2:26 am. (1 message)
To: John W. Linville <linville@...>
Cc: <linux-next@...>, David Miller <davem@...>, LKML <linux-kernel@...>, Luis R. Rodriguez <lrodriguez@...>
Date: Tuesday, August 5, 2008 - 2:21 am

Hi John,

Today's linux-next build (powerpc allyesconfig) failed like this:

drivers/net/wireless/ath9k/hw.c: In function 'ath9k_hw_9280_spur_mitigate':
drivers/net/wireless/ath9k/hw.c:4660: internal compiler error: in expand_ex=
pr_real_1, at expr.c:9199

Clearly not our fault! :-) I have informed our toolchain person. This
was using the Debian gcc-4.3. It also fails using the Debian 4.2
compiler but not the 4.1 one.

For now, I will apply the following patch to just stop it building on
PowerPC.

--=20
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

To: Stephen Rothwell <sfr@...>
Cc: John W. Linville <linville@...>, <linux-next@...>, David Miller <davem@...>, LKML <linux-kernel@...>, Luis R. Rodriguez <lrodriguez@...>
Date: Tuesday, August 5, 2008 - 11:37 am

Alexandros Couloumbis already opened a bug for this issue on mips, which
also seems to be affected:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37014

It is a gcc bug, but we'll have to work around it in the ath9k driver.

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

--

To: Adrian Bunk <bunk@...>
Cc: Stephen Rothwell <sfr@...>, <linux-next@...>, David Miller <davem@...>, LKML <linux-kernel@...>, Luis R. Rodriguez <lrodriguez@...>
Date: Tuesday, August 5, 2008 - 12:00 pm

I imagine that we would be happy to do that. Anyone have a clue as to how?

John
--
John W. Linville
linville@tuxdriver.com
--

To: John W. Linville <linville@...>
Cc: Stephen Rothwell <sfr@...>, <linux-next@...>, David Miller <davem@...>, LKML <linux-kernel@...>, Luis R. Rodriguez <lrodriguez@...>
Date: Tuesday, August 5, 2008 - 3:06 pm

Patch below, verified to fix the issue with the following compilers:
- powerpc 4.2.4
- powerpc latest 4.3 SVN
- powerpc latest 4.4 SVN
- mips 4.2.4
- mips 4.3.1

The patch has to be applied twice for fixing both copies of the

cu
Adrian

<-- snip -->

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>

---
d1ec5b9fba6c50c7e98a85776a3b95d3a3a3179b
diff --git a/drivers/net/wireless/ath9k/hw.c b/drivers/net/wireless/ath9k/hw.c
index 1f6f393..5edc56d 100644
--- a/drivers/net/wireless/ath9k/hw.c
+++ b/drivers/net/wireless/ath9k/hw.c
@@ -4801,7 +4801,11 @@

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;
--

To: John W. Linville <linville@...>
Cc: Adrian Bunk <bunk@...>, <linux-next@...>, David Miller <davem@...>, LKML <linux-kernel@...>, Luis R. Rodriguez <lrodriguez@...>
Date: Tuesday, August 5, 2008 - 12:35 pm

Hi John,

On Tue, 5 Aug 2008 12:00:26 -0400 "John W. Linville" <linville@tuxdriver.co=
w?

I think that "not yet" is the answer :-(

If we don't get a useful answer soon, we may just have to merge the
driver with appropriately commented negative "depends on" in Kconfig for
the arches it breaks.

--=20
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

To: Adrian Bunk <bunk@...>
Cc: John W. Linville <linville@...>, <linux-next@...>, David Miller <davem@...>, LKML <linux-kernel@...>, Luis R. Rodriguez <lrodriguez@...>
Date: Tuesday, August 5, 2008 - 12:02 pm

Hi Adrian,

Thanks for fishing that out Adrian.
--=20
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

Previous thread: [PATCH] X86 Architecture: HPET Rework for SB700A12 by crane cai on Tuesday, August 5, 2008 - 2:20 am. (1 message)

Next thread: [PATCH 2.6.27-rc1-git5 1/26] mdb: add include file references by jmerkey on Tuesday, August 5, 2008 - 2:26 am. (1 message)