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

[Xen-changelog] [xen master] common/gnttab: simplify gnttab_copy_lock_domain()



commit b66e8d119cb8d8558e1ac8c61e3e2c503038cc80
Author:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
AuthorDate: Tue Jun 20 10:40:56 2017 +0100
Commit:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CommitDate: Tue Aug 15 15:08:58 2017 +0100

    common/gnttab: simplify gnttab_copy_lock_domain()
    
    Remove the opencoded rcu_lock_domain_by_any_id().  Drop the PIN_FAIL()s and
    return GNTST_* values directly.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
 xen/common/grant_table.c | 25 +++++++++----------------
 1 file changed, 9 insertions(+), 16 deletions(-)

diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 49a18e8..56082d8 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -2361,28 +2361,21 @@ struct gnttab_copy_buf {
     bool_t have_type;
 };
 
-static int gnttab_copy_lock_domain(domid_t domid, unsigned int gref_flag,
+static int gnttab_copy_lock_domain(domid_t domid, bool is_gref,
                                    struct gnttab_copy_buf *buf)
 {
-    int rc;
+    /* Only DOMID_SELF may reference via frame. */
+    if ( domid != DOMID_SELF && !is_gref )
+        return GNTST_permission_denied;
 
-    if ( domid != DOMID_SELF && !gref_flag )
-        PIN_FAIL(out, GNTST_permission_denied,
-                 "only allow copy-by-mfn for DOMID_SELF.\n");
+    buf->domain = rcu_lock_domain_by_any_id(domid);
 
-    if ( domid == DOMID_SELF )
-        buf->domain = rcu_lock_current_domain();
-    else
-    {
-        buf->domain = rcu_lock_domain_by_id(domid);
-        if ( buf->domain == NULL )
-            PIN_FAIL(out, GNTST_bad_domain, "couldn't find %d\n", domid);
-    }
+    if ( !buf->domain )
+        return GNTST_bad_domain;
 
     buf->ptr.domid = domid;
-    rc = GNTST_okay;
- out:
-    return rc;
+
+    return GNTST_okay;
 }
 
 static void gnttab_copy_unlock_domains(struct gnttab_copy_buf *src,
--
generated by git-patchbot for /home/xen/git/xen.git#master

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

 


Rackspace

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