Re: 2.6.19-rc5-mm1 fails to compile with gcc 4.2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bernhard Rosenkraenzer wrote:
On Sunday, 12. November 2006 14:43, Avi Kivity wrote:
'sel' is a variable, so gcc can't provide it as an immediate operand.
Specifying it as "rm" instead of "g" would have been better, but can't
have any real influence.

Specifying it as "rm" instead of "g" does fix it -- patch attached.

Well, for the code you posted in in the gcc bug, it probaby generated
something like

    mov $0, %fs

which is indeed invalid assembly.  But the kvm miscompile is something
else (running out of registers or something like that).

What am I overlooking? The code is the exact same (except I replaced "u16" with "unsigned short" to avoid the #include), and produces the exact same error message, and the fix is the same ("g" -> "rm").

Well, since it works, I guess I'm overlooking something. Maybe it's just a bad error message from gcc.

I'll apply this.  Thanks!

------------------------------------------------------------------------

--- linux-2.6.18/drivers/kvm/kvm_main.c.ark	2006-11-12 14:40:09.000000000 +0100
+++ linux-2.6.18/drivers/kvm/kvm_main.c	2006-11-12 14:44:57.000000000 +0100
@@ -150,12 +150,12 @@
static void load_fs(u16 sel)
 {
-	asm ("mov %0, %%fs" : : "g"(sel));
+	asm ("mov %0, %%fs" : : "rm"(sel));
 }
static void load_gs(u16 sel)
 {
-	asm ("mov %0, %%gs" : : "g"(sel));
+	asm ("mov %0, %%gs" : : "rm"(sel));
 }
#ifndef load_ldt


--
error compiling committee.c: too many arguments to function

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux