[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH V3 12/12] xen/vm_event: Check for VM_EVENT_FLAG_DUMMY only in Debug builds
The flag is only used for debugging purposes, thus it should be only checked for in debug builds of Xen. Signed-off-by: Tamas K Lengyel <tamas.lengyel@xxxxxxxxxxxx> --- xen/arch/x86/mm/mem_sharing.c | 2 ++ xen/arch/x86/mm/p2m.c | 2 ++ xen/common/mem_access.c | 31 +++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c index c487207..303c2fb 100644 --- a/xen/arch/x86/mm/mem_sharing.c +++ b/xen/arch/x86/mm/mem_sharing.c @@ -604,8 +604,10 @@ int mem_sharing_sharing_resume(struct domain *d) if ( rsp.version != VM_EVENT_INTERFACE_VERSION ) continue; +#ifndef NDEBUG if ( rsp.flags & VM_EVENT_FLAG_DUMMY ) continue; +#endif /* Validate the vcpu_id in the response. */ if ( (rsp.vcpu_id >= d->max_vcpus) || !d->vcpu[rsp.vcpu_id] ) diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c index 3b58700..1d91000 100644 --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -1305,8 +1305,10 @@ void p2m_mem_paging_resume(struct domain *d) if ( rsp.version != VM_EVENT_INTERFACE_VERSION ) continue; +#ifndef NDEBUG if ( rsp.flags & VM_EVENT_FLAG_DUMMY ) continue; +#endif /* Validate the vcpu_id in the response. */ if ( (rsp.vcpu_id >= d->max_vcpus) || !d->vcpu[rsp.vcpu_id] ) diff --git a/xen/common/mem_access.c b/xen/common/mem_access.c index 3655165..e0a538f 100644 --- a/xen/common/mem_access.c +++ b/xen/common/mem_access.c @@ -30,6 +30,37 @@ #include <asm/p2m.h> #include <xsm/xsm.h> +void mem_access_resume(struct domain *d) +{ + vm_event_response_t rsp; + + /* Pull all responses off the ring. */ + while ( vm_event_get_response(d, &d->vm_event->monitor, &rsp) ) + { + struct vcpu *v; + + if ( rsp.version != VM_EVENT_INTERFACE_VERSION ) + continue; + +#ifndef NDEBUG + if ( rsp.flags & VM_EVENT_FLAG_DUMMY ) + continue; +#endif + + /* Validate the vcpu_id in the response. */ + if ( (rsp.vcpu_id >= d->max_vcpus) || !d->vcpu[rsp.vcpu_id] ) + continue; + + v = d->vcpu[rsp.vcpu_id]; + + p2m_vm_event_emulate_check(v, &rsp); + + /* Unpause domain. */ + if ( rsp.flags & VM_EVENT_FLAG_VCPU_PAUSED ) + vm_event_vcpu_unpause(v); + } +} + int mem_access_memop(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(xen_mem_access_op_t) arg) { -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |