aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2010-10-18 16:43:15 +0100
committerIan Campbell <ian.campbell@citrix.com>2010-10-18 16:43:15 +0100
commit3a200f3c4be9bbbf6078ba0a6e6f1f2a543f5378 (patch)
tree10ad32a380f19d4c074a3a09c0471c6a0b49a719 /tools/libxc
parent53c6e9e545e2202d02f674bd2d8150d62706e23c (diff)
downloadxen-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.c4
-rw-r--r--tools/libxc/xc_private.c4
-rw-r--r--tools/libxc/xc_private.h7
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)