[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH RFC 01/13] x86/mm: export {get,put}_pg_owner



Prefix them with "mm_" and add declarations to asm-x86/mm.h.

They will be needed when we split PV specific code out of x86/mm.c.

No functional change.

Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
 xen/arch/x86/mm.c        | 20 ++++++++++----------
 xen/include/asm-x86/mm.h |  4 ++++
 2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 4dbd24ff87..c0bdc667bf 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -3025,7 +3025,7 @@ int new_guest_cr3(unsigned long mfn)
     return rc;
 }
 
-static struct domain *get_pg_owner(domid_t domid)
+struct domain *mm_get_pg_owner(domid_t domid)
 {
     struct domain *pg_owner = NULL, *curr = current->domain;
 
@@ -3068,7 +3068,7 @@ static struct domain *get_pg_owner(domid_t domid)
     return pg_owner;
 }
 
-static void put_pg_owner(struct domain *pg_owner)
+void mm_put_pg_owner(struct domain *pg_owner)
 {
     rcu_unlock_domain(pg_owner);
 }
@@ -3153,19 +3153,19 @@ long do_mmuext_op(
     if ( unlikely(!guest_handle_okay(uops, count)) )
         return -EFAULT;
 
-    if ( (pg_owner = get_pg_owner(foreigndom)) == NULL )
+    if ( (pg_owner = mm_get_pg_owner(foreigndom)) == NULL )
         return -ESRCH;
 
     if ( !is_pv_domain(pg_owner) )
     {
-        put_pg_owner(pg_owner);
+        mm_put_pg_owner(pg_owner);
         return -EINVAL;
     }
 
     rc = xsm_mmuext_op(XSM_TARGET, d, pg_owner);
     if ( rc )
     {
-        put_pg_owner(pg_owner);
+        mm_put_pg_owner(pg_owner);
         return rc;
     }
 
@@ -3640,7 +3640,7 @@ long do_mmuext_op(
                 MMU_UPDATE_PREEMPTED, null, rc);
     }
 
-    put_pg_owner(pg_owner);
+    mm_put_pg_owner(pg_owner);
 
     perfc_add(num_mmuext_ops, i);
 
@@ -3716,7 +3716,7 @@ long do_mmu_update(
         }
     }
 
-    if ( (pg_owner = get_pg_owner((uint16_t)foreigndom)) == NULL )
+    if ( (pg_owner = mm_get_pg_owner((uint16_t)foreigndom)) == NULL )
     {
         rc = -ESRCH;
         goto out;
@@ -3951,7 +3951,7 @@ long do_mmu_update(
                 MMU_UPDATE_PREEMPTED, null, rc);
     }
 
-    put_pg_owner(pg_owner);
+    mm_put_pg_owner(pg_owner);
 
     domain_mmap_cache_destroy(&mapcache);
 
@@ -4571,12 +4571,12 @@ long do_update_va_mapping_otherdomain(unsigned long va, 
u64 val64,
     struct domain *pg_owner;
     int rc;
 
-    if ( (pg_owner = get_pg_owner(domid)) == NULL )
+    if ( (pg_owner = mm_get_pg_owner(domid)) == NULL )
         return -ESRCH;
 
     rc = __do_update_va_mapping(va, val64, flags, pg_owner);
 
-    put_pg_owner(pg_owner);
+    mm_put_pg_owner(pg_owner);
 
     return rc;
 }
diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
index e22603ce98..e2baffa9a4 100644
--- a/xen/include/asm-x86/mm.h
+++ b/xen/include/asm-x86/mm.h
@@ -602,4 +602,8 @@ extern const char zero_page[];
 /* Build a 32bit PSE page table using 4MB pages. */
 void write_32bit_pse_identmap(uint32_t *l2);
 
+/* Grab the domain lock of target domain after passing checks */
+struct domain *mm_get_pg_owner(domid_t domid);
+void mm_put_pg_owner(struct domain *pg_owner);
+
 #endif /* __ASM_X86_MM_H__ */
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.