i386: work around miscompilation of alternatives code
authorJoerg Roedel <joerg.roedel@amd.com>
Fri, 11 May 2007 05:22:14 +0000 (22:22 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 11 May 2007 15:29:32 +0000 (08:29 -0700)
commit6041b57c6c99dcb59524f1bb0db0628c2689a464
tree0509eb54f13e94b08afab9fb6bd2947fca73492c
parent129a84de2347002f09721cda3155ccfd19fade40
i386: work around miscompilation of alternatives code

A recent change makes my Dell 1501 hang on boot.  It's an AMD MK-36.  I use
an x86_64 kernel.  It is 100% reproducible.

I debugged this problem a bit and my compiler[1]interprets the =A constraint
as %rax instead of %edx:%eax on x86_64 which causes the problem.  The appended
patch provides a workaround for this and fixed the hang on my machine.

[1] gcc version 4.1.3 20070429 (prerelease) (Debian 4.1.2-5)

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Cc: Andi Kleen <ak@suse.de>
Cc: Benny Halevy <bhalevy@panasas.com>
Cc: Pete Zaitcev <zaitcev@redhat.com>
Cc: "Joerg Roedel" <joerg.roedel@amd.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/asm-i386/alternative.h
include/asm-i386/tsc.h
include/asm-x86_64/alternative.h