On 12/20/10 10:26, Avi Kivity wrote: > On 12/20/2010 08:22 PM, Randy Dunlap wrote: >> On 12/20/10 09:58, Avi Kivity wrote: >> > On 12/20/2010 07:57 PM, Avi Kivity wrote: >> >> On 12/20/2010 07:53 PM, Randy Dunlap wrote: >> >>> On 12/20/10 09:47, Avi Kivity wrote: >> >>> > On 12/20/2010 06:56 PM, Randy Dunlap wrote: >> >>> >> On 12/20/10 01:06, Avi Kivity wrote: >> >>> >> > 'error' is byte sized, so use a byte register constraint. >> >>> >> >> >>> >> Hm, OK, but I still get the same build error. >> >>> > >> >>> > Not okay then. Can you verify that by removing the content >> of the >> >>> > function the problem goes away? >> >>> >> >>> Nope. I put #if 0 / #endif around the asm() and if (error) lines >> >>> but I still get the error message: >> >>> >> >>> linux-next-20101217/arch/x86/kvm/vmx.c: Assembler messages: >> >>> linux-next-20101217/arch/x86/kvm/vmx.c:488: Error: bad register name >> >>> `%sil' >> >>> >> >> >> >> And line 488 was one of those under #if 0? >> >> >> >>> which is on the "u8 error;" line below: >> >>> >> >>> static void vmcs_load(struct vmcs *vmcs) >> >>> { >> >>> u64 phys_addr = __pa(vmcs); >> >>> u8 error; >> >>> >> > >> > Er, you just answered me. Are you sure gcc saw your update? what >> > happens if you comment that line as well? assign to 'error' instead? >> >> > pwd >> /lnx/src/NEXT/linux-next-20101217 >> >> > quilt ser -v >> = kvm-asm-constraint12.patch >> >> > make ARCH=i386 O=X32 all 2>&1 | tee kvm7.out >> <kconfig messages deleted> >> Using /lnx/src/NEXT/linux-next-20101217 as source for kernel >> GEN /lnx/src/NEXT/linux-next-20101217/X32/Makefile >> CHK include/linux/version.h >> CHK include/generated/utsrelease.h >> CALL /lnx/src/NEXT/linux-next-20101217/scripts/checksyscalls.sh >> CHK include/generated/compile.h >> CC arch/x86/kvm/vmx.o >> /lnx/src/NEXT/linux-next-20101217/arch/x86/kvm/vmx.c: Assembler messages: >> /lnx/src/NEXT/linux-next-20101217/arch/x86/kvm/vmx.c:488: Error: bad >> register name `%sil' >> make[3]: *** [arch/x86/kvm/vmx.o] Error 1 >> make[2]: *** [arch/x86/kvm] Error 2 >> make[1]: *** [arch/x86] Error 2 >> make: *** [sub-make] Error 2 >> >> >> This is with the entire function being empty (no code, no data). >> >> > Wierd. >> >> Definitely. I can't explain it. >> > > Maybe it's the vmcs_clear() above. Try the same treatment? Good call. Changing the =g to =qm there fixes the build problem. Thanks. -- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** desserts: http://www.xenotime.net/linux/recipes/ -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html