On 29/07/20 01:37, Babu Moger wrote: > This is in preparation for the future intercept vector additions. > > Add new functions __set_intercept, __clr_intercept and __is_intercept > using kernel APIs __set_bit, __clear_bit and test_bit espectively. > > Signed-off-by: Babu Moger <babu.mo...@amd.com> > --- > arch/x86/kvm/svm/svm.h | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h > index 6ac4c00a5d82..3b669718190a 100644 > --- a/arch/x86/kvm/svm/svm.h > +++ b/arch/x86/kvm/svm/svm.h > @@ -217,6 +217,21 @@ static inline struct vmcb *get_host_vmcb(struct vcpu_svm > *svm) > return svm->vmcb; > } > > +static inline void __set_intercept(void *addr, int bit) > +{ > + __set_bit(bit, (unsigned long *)addr); > +} > + > +static inline void __clr_intercept(void *addr, int bit) > +{ > + __clear_bit(bit, (unsigned long *)addr); > +} > + > +static inline bool __is_intercept(void *addr, int bit) > +{ > + return test_bit(bit, (unsigned long *)addr); > +} > +
Probably worth adding a range check? Paolo > static inline void set_cr_intercept(struct vcpu_svm *svm, int bit) > { > struct vmcb *vmcb = get_host_vmcb(svm); >