[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V2 3/3] xen/vm_event: Deny register writes if refused by vm_event reply
On 06/26/2015 11:28 AM, Jan Beulich wrote: >> --- a/xen/arch/x86/hvm/vmx/vmx.c >> > +++ b/xen/arch/x86/hvm/vmx/vmx.c >> > @@ -2010,9 +2010,9 @@ static int vmx_cr_access(unsigned long >> > exit_qualification) >> > } >> > case VMX_CONTROL_REG_ACCESS_TYPE_CLTS: { >> > unsigned long old = curr->arch.hvm_vcpu.guest_cr[0]; >> > + hvm_event_crX(CR0, curr->arch.hvm_vcpu.guest_cr[0], old); >> > curr->arch.hvm_vcpu.guest_cr[0] &= ~X86_CR0_TS; >> > vmx_update_guest_cr(curr, 0); >> > - hvm_event_crX(CR0, curr->arch.hvm_vcpu.guest_cr[0], old); >> > HVMTRACE_0D(CLTS); >> > break; >> > } > I suppose it is intentional to ignore a possible deny here? If so, > shouldn't the be documented by way of a comment? On second though, I will document it by way of a comment and leave it as it is, since this is a corner case that would need special handling (vmx_update_guest_cr(curr, 0), etc. vs how it's now done in hvm_do_resume(), which would need a new parameter being passed around, conditional code, etc.), and AFAIK this event is not interesting from a DENY perspective and so not currently worth the overhead. Looking at the code again, I'll also fix another mistake: when cutting and pasting the hvm_event_crX() above to make it a pre-write event to be consistent, the hvm_event_crX(CR0, curr->arch.hvm_vcpu.guest_cr[0], old) code became wrong: old == curr->arch.hvm_vcpu.guest_cr[0], whereas before, curr->arch.hvm_vcpu.guest_cr[0] &= ~X86_CR0_TS before that call. I'll fix this too in V3. Thanks, Razvan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |