On Thu, Jun 01, 2023 at 10:23:06PM +0800, Zeng Guang wrote: >diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h >index 92d8e65fe88c..98666d1e7727 100644 >--- a/arch/x86/include/asm/kvm_host.h >+++ b/arch/x86/include/asm/kvm_host.h >@@ -1731,6 +1731,8 @@ struct kvm_x86_ops { > * Returns vCPU specific APICv inhibit reasons > */ > unsigned long (*vcpu_get_apicv_inhibit_reasons)(struct kvm_vcpu *vcpu); >+ >+ bool (*check_lass)(struct kvm_vcpu *vcpu, u64 access, u64 la, u32 flags); It is better to declare the @la as gva_t since the address is a virtual address. Both @access and @flags provide additional informaiton about a memory access. I think we can drop one of them e.g. adding a new bit X86EMUL_F_IMPLICIT_ACCESS. Or maybe in the first place, we can just extend PFERR_? for SKIP_LASS/LAM behavior instead of adding another set of flags (X86EMUL_F_?). The benefit of adding new flags is they won't collide with future hardware extensions. I am not sure.