On 19.06.2020 17:30, Roger Pau Monné wrote: > On Fri, Jun 19, 2020 at 01:41:03AM +0200, Michał Leszczyński wrote: >> --- a/xen/arch/x86/hvm/hvm.c >> +++ b/xen/arch/x86/hvm/hvm.c >> @@ -1612,6 +1612,24 @@ int hvm_vcpu_initialise(struct vcpu *v) >> return rc; >> } >> >> +void hvm_vmtrace_destroy(struct vcpu *v) >> +{ >> + unsigned int i; >> + struct page_info *pg; >> + struct ipt_state *ipt = v->arch.hvm.vmx.ipt_state; >> + mfn_t buf_mfn = ipt->output_base >> PAGE_SHIFT; > > Does this build? I think you are missing a _mfn(...) here?
This as well as ... >> + size_t buf_size = ipt->output_mask.size + 1; >> + >> + xfree(ipt); >> + v->arch.hvm.vmx.ipt_state = NULL; >> + >> + for ( i = 0; i < (buf_size >> PAGE_SHIFT); i++ ) >> + { >> + pg = mfn_to_page(_mfn(mfn_add(buf_mfn, i))); ... the extra _mfn() here suggest the code was only ever built in release mode so far. Jan