Re: [PATCH] KVM: VMX: Correct asm constraint in vmcs_load()

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

 



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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux