Re: [PATCH] KVM: 'asm' operand has impossible constraints

From: Avi Kivity
Date: Sat Jan 27 2007 - 04:06:29 EST


S.ÃaÄlar Onur wrote:
Hi;

-rc6 fails with latest gcc 4.2 snapshot as following;

CC [M] drivers/kvm/svm.o
drivers/kvm/svm.c:206: warning: 'inject_db' defined but not used
drivers/kvm/svm.c: In function 'svm_vcpu_run':
drivers/kvm/kvm.h:560: error: 'asm' operand has impossible constraints
make[2]: *** [drivers/kvm/svm.o] Error 1
make[1]: *** [drivers/kvm] Error 2
make: *** [drivers] Error 2

And according to this thread http://lkml.org/lkml/2006/11/11/129, solution is converting g to rm, patch follows


The patch looks correct, but I don't understand the gcc error message. Are we sure this isn't a gcc 4.2 bug?

"g" appears to be equivalent to "rmi", if "i" is impossible, gcc is free to use "r" or "m", no?


Signed-off-by: S.ÃaÄlar Onur <caglar@xxxxxxxxxxxxx>

Index: linux-2.6/drivers/kvm/kvm.h
===================================================================
--- linux-2.6.orig/drivers/kvm/kvm.h 2007-01-26 01:38:35.000000000 +0200
+++ linux-2.6/drivers/kvm/kvm.h 2007-01-26 01:37:48.000000000 +0200
@@ -557,7 +557,7 @@
#ifndef load_ldt
static inline void load_ldt(u16 sel)
{
- asm ("lldt %0" : : "g"(sel));
+ asm ("lldt %0" : : "rm"(sel));
}
#endif




--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.

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