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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html