diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2010-10-18 16:43:15 +0100 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2010-10-18 16:43:15 +0100 |
commit | 3a200f3c4be9bbbf6078ba0a6e6f1f2a543f5378 (patch) | |
tree | 10ad32a380f19d4c074a3a09c0471c6a0b49a719 /tools/libxc | |
parent | 53c6e9e545e2202d02f674bd2d8150d62706e23c (diff) | |
download | xen-3a200f3c4be9bbbf6078ba0a6e6f1f2a543f5378.tar.gz xen-3a200f3c4be9bbbf6078ba0a6e6f1f2a543f5378.tar.bz2 xen-3a200f3c4be9bbbf6078ba0a6e6f1f2a543f5378.zip |
libxc: flask: use (un)lock pages rather than open coding m(un)lock.
Allows us to do away with safe_unlock and merge into unlock_pages.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxc')
-rw-r--r-- | tools/libxc/xc_flask.c | 4 | ||||
-rw-r--r-- | tools/libxc/xc_private.c | 4 | ||||
-rw-r--r-- | tools/libxc/xc_private.h | 7 |
3 files changed, 5 insertions, 10 deletions
diff --git a/tools/libxc/xc_flask.c b/tools/libxc/xc_flask.c index d9d4204f4e..e97f9b09e9 100644 --- a/tools/libxc/xc_flask.c +++ b/tools/libxc/xc_flask.c @@ -44,7 +44,7 @@ int xc_flask_op(xc_interface *xch, flask_op_t *op) hypercall.op = __HYPERVISOR_xsm_op; hypercall.arg[0] = (unsigned long)op; - if ( mlock(op, sizeof(*op)) != 0 ) + if ( lock_pages(op, sizeof(*op)) != 0 ) { PERROR("Could not lock memory for Xen hypercall"); goto out; @@ -56,7 +56,7 @@ int xc_flask_op(xc_interface *xch, flask_op_t *op) fprintf(stderr, "XSM operation failed!\n"); } - safe_munlock(op, sizeof(*op)); + unlock_pages(op, sizeof(*op)); out: return ret; diff --git a/tools/libxc/xc_private.c b/tools/libxc/xc_private.c index e6952a1a52..a1822edc69 100644 --- a/tools/libxc/xc_private.c +++ b/tools/libxc/xc_private.c @@ -218,7 +218,9 @@ void unlock_pages(void *addr, size_t len) void *laddr = (void *)((unsigned long)addr & PAGE_MASK); size_t llen = (len + ((unsigned long)addr - (unsigned long)laddr) + PAGE_SIZE - 1) & PAGE_MASK; - safe_munlock(laddr, llen); + int saved_errno = errno; + (void)munlock(laddr, llen); + errno = saved_errno; } static pthread_key_t hcall_buf_pkey; diff --git a/tools/libxc/xc_private.h b/tools/libxc/xc_private.h index bec3871e19..88f3a72909 100644 --- a/tools/libxc/xc_private.h +++ b/tools/libxc/xc_private.h @@ -106,13 +106,6 @@ void unlock_pages(void *addr, size_t len); int hcall_buf_prep(void **addr, size_t len); void hcall_buf_release(void **addr, size_t len); -static inline void safe_munlock(const void *addr, size_t len) -{ - int saved_errno = errno; - (void)munlock(addr, len); - errno = saved_errno; -} - int do_xen_hypercall(xc_interface *xch, privcmd_hypercall_t *hypercall); static inline int do_xen_version(xc_interface *xch, int cmd, void *dest) |