On Fri, Apr 21, 2023 at 03:57:15PM +0800, Binbin Wu wrote: > >> > --- a/arch/x86/kvm/emulate.c >> > +++ b/arch/x86/kvm/emulate.c >> > @@ -688,7 +688,8 @@ static __always_inline int __linearize(struct x86_emulate_ctxt *ctxt, >> > struct segmented_address addr, >> > unsigned *max_size, unsigned size, >> > bool write, bool fetch, >> > - enum x86emul_mode mode, ulong *linear) >> > + enum x86emul_mode mode, ulong *linear, >> > + u64 untag_flags) >> @write and @fetch are like flags. I think we can consolidate them into >> the @flags first as a cleanup patch and then add a flag for LAM. > >OK. Here is the proposed cleanup patch: looks good to me > > >--- a/arch/x86/kvm/x86.h >+++ b/arch/x86/kvm/x86.h >@@ -48,6 +48,15 @@ void kvm_spurious_fault(void); > #define KVM_SVM_DEFAULT_PLE_WINDOW_MAX USHRT_MAX > #define KVM_SVM_DEFAULT_PLE_WINDOW 3000 > >+/* x86-specific emulation flags */ >+#define KVM_X86_EMULFLAG_FETCH _BITULL(0) >+#define KVM_X86_EMULFLAG_WRITE _BITULL(1) Can we move the definitions to arch/x86/kvm/kvm_emulate.h? > > >And the following two will be defined for untag: > >#define KVM_X86_EMULFLAG_SKIP_UNTAG_VMX _BITULL(2) >#define KVM_X86_EMULFLAG_SKIP_UNTAG_SVM _BITULL(3) /* reserved for SVM */ > >