diff options
author | Jan Beulich <jbeulich@suse.com> | 2013-02-28 11:09:39 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2013-02-28 11:09:39 +0100 |
commit | 8db1e759556d3a3832f92e91d6c848c5ce2d3fa1 (patch) | |
tree | 4dfe7fd0f989b23a377df70973f569491f618551 /xen/include/asm-x86/x86_64 | |
parent | 703ac3abcfc5f649c038070867ee12c67f730548 (diff) | |
download | xen-8db1e759556d3a3832f92e91d6c848c5ce2d3fa1.tar.gz xen-8db1e759556d3a3832f92e91d6c848c5ce2d3fa1.tar.bz2 xen-8db1e759556d3a3832f92e91d6c848c5ce2d3fa1.zip |
x86: rework hypercall argument translation area setup
... using the new per-domain mapping management functions, adding
destroy_perdomain_mapping() to the previously introduced pair.
Rather than using an order-1 Xen heap allocation, use (currently 2)
individual domain heap pages to populate space in the per-domain
mapping area.
Also fix a benign off-by-one mistake in is_compat_arg_xlat_range().
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/include/asm-x86/x86_64')
-rw-r--r-- | xen/include/asm-x86/x86_64/uaccess.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/xen/include/asm-x86/x86_64/uaccess.h b/xen/include/asm-x86/x86_64/uaccess.h index b82ad9da47..953abe7693 100644 --- a/xen/include/asm-x86/x86_64/uaccess.h +++ b/xen/include/asm-x86/x86_64/uaccess.h @@ -1,16 +1,15 @@ #ifndef __X86_64_UACCESS_H #define __X86_64_UACCESS_H -#define COMPAT_ARG_XLAT_VIRT_BASE compat_arg_xlat_virt_base() +#define COMPAT_ARG_XLAT_VIRT_BASE ((void *)ARG_XLAT_START(current)) #define COMPAT_ARG_XLAT_SIZE (2*PAGE_SIZE) struct vcpu; -void *compat_arg_xlat_virt_base(void); int setup_compat_arg_xlat(struct vcpu *v); void free_compat_arg_xlat(struct vcpu *v); #define is_compat_arg_xlat_range(addr, size) ({ \ unsigned long __off; \ __off = (unsigned long)(addr) - (unsigned long)COMPAT_ARG_XLAT_VIRT_BASE; \ - (__off <= COMPAT_ARG_XLAT_SIZE) && \ + (__off < COMPAT_ARG_XLAT_SIZE) && \ ((__off + (unsigned long)(size)) <= COMPAT_ARG_XLAT_SIZE); \ }) |