[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC 08/12] x86/np2m: add p2m_get_nestedp2m_locked()
The new function returns still write-locked np2m. Signed-off-by: Sergey Dyasli <sergey.dyasli@xxxxxxxxxx> --- xen/arch/x86/mm/p2m.c | 12 +++++++++--- xen/include/asm-x86/p2m.h | 2 ++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c index 4b83d4a4f1..364fdd8c13 100644 --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -1824,7 +1824,7 @@ static void nvcpu_flush(struct vcpu *v) } struct p2m_domain * -p2m_get_nestedp2m(struct vcpu *v) +p2m_get_nestedp2m_locked(struct vcpu *v) { struct nestedvcpu *nv = &vcpu_nestedhvm(v); struct domain *d = v->domain; @@ -1849,7 +1849,6 @@ p2m_get_nestedp2m(struct vcpu *v) nvcpu_flush(v); p2m->np2m_base = np2m_base; assign_np2m(v, p2m); - p2m_unlock(p2m); nestedp2m_unlock(d); return p2m; @@ -1865,12 +1864,19 @@ p2m_get_nestedp2m(struct vcpu *v) p2m->np2m_base = np2m_base; nvcpu_flush(v); assign_np2m(v, p2m); - p2m_unlock(p2m); nestedp2m_unlock(d); return p2m; } +struct p2m_domain *p2m_get_nestedp2m(struct vcpu *v) +{ + struct p2m_domain *p2m = p2m_get_nestedp2m_locked(v); + p2m_unlock(p2m); + + return p2m; +} + struct p2m_domain * p2m_get_p2m(struct vcpu *v) { diff --git a/xen/include/asm-x86/p2m.h b/xen/include/asm-x86/p2m.h index 801a11a960..936d1142c8 100644 --- a/xen/include/asm-x86/p2m.h +++ b/xen/include/asm-x86/p2m.h @@ -364,6 +364,8 @@ struct p2m_domain { * Updates vCPU's n2pm to match its EPTP in VMCS12 and returns that np2m. */ struct p2m_domain *p2m_get_nestedp2m(struct vcpu *v); +/* Similar to the above except that returned p2m is still write-locked */ +struct p2m_domain *p2m_get_nestedp2m_locked(struct vcpu *v); /* If vcpu is in host mode then behaviour matches p2m_get_hostp2m(). * If vcpu is in guest mode then behaviour matches p2m_get_nestedp2m(). -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |