On 11/6/2024 4:54 PM, Huang, Kai wrote:
On Wed, 2024-11-06 at 16:32 +0800, Binbin Wu wrote:
static void kvm_complete_hypercall_exit(struct kvm_vcpu *vcpu, int ret_reg,
unsigned long ret, bool op_64_bit)
{
if (!op_64_bit)
ret = (u32)ret;
kvm_register_write_raw(vcpu, ret_reg, ret);
++vcpu->stat.hypercalls;
}
If this is going to be the final version, it would be better to make it
public, and export the symbol, so that TDX code can reuse it.
Does making it 'static inline' and moving to kvm_host.h work?
It doesn't have a complete definition of struct kvm_vcpu in
arch/x86/include/asm/kvm_host.h, and the code is dereferencing
struct kvm_vcpu.
Also, the definition of kvm_register_write_raw() is in
arch/x86/kvm/kvm_cache_regs.h, which make it difficult to be called
there.
kvm_register_write_raw(), and kvm_register_mark_dirty() which is called by
kvm_register_write_raw()), are both 'static inline'. Seems we can get rid of
export by making it 'static inline'.