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

Avi Kivity
2007-01-27T09:05:53Z

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@pardus.org.tr>
>
> 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.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net