Commit 8ac81570 authored by Arjan van de Ven's avatar Arjan van de Ven Committed by Linus Torvalds

[PATCH] incomplete asm constraints in arch/i386/pci/pcbios.c

This fixes a "miscompile" HP reported against gcc 3.3 with
-march-pentium4.  It turned out to be a non-complete asm contraint.  the
existing constraint on "opt" was on the address of "opt", which allowed
gcc to reorder the setting of the fields inside opt to beyond the asm
that uses it, which is less than useful at best.
parent 968f11a8
...@@ -430,7 +430,8 @@ struct irq_routing_table * __devinit pcibios_get_irq_routing_table(void) ...@@ -430,7 +430,8 @@ struct irq_routing_table * __devinit pcibios_get_irq_routing_table(void)
"xor %%ah, %%ah\n" "xor %%ah, %%ah\n"
"1:" "1:"
: "=a" (ret), : "=a" (ret),
"=b" (map) "=b" (map),
"+m" (opt)
: "0" (PCIBIOS_GET_ROUTING_OPTIONS), : "0" (PCIBIOS_GET_ROUTING_OPTIONS),
"1" (0), "1" (0),
"D" ((long) &opt), "D" ((long) &opt),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment