aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/x86_64
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2013-05-02 16:34:21 +0200
committerJan Beulich <jbeulich@suse.com>2013-05-02 16:34:21 +0200
commit6cdc9be2a5f2a87b4504404fbf648d16d9503c19 (patch)
tree57244e0df782cc38467cf1045314806967c72ba9 /xen/arch/x86/x86_64
parent9626d1c1fafe2da5af6e59478c9e9db6d03144df (diff)
downloadxen-6cdc9be2a5f2a87b4504404fbf648d16d9503c19.tar.gz
xen-6cdc9be2a5f2a87b4504404fbf648d16d9503c19.tar.bz2
xen-6cdc9be2a5f2a87b4504404fbf648d16d9503c19.zip
x86: make vcpu_destroy_pagetables() preemptible
... as it may take significant amounts of time. The function, being moved to mm.c as the better home for it anyway, and to avoid having to make a new helper function there non-static, is given a "preemptible" parameter temporarily (until, in a subsequent patch, its other caller is also being made capable of dealing with preemption). This is part of CVE-2013-1918 / XSA-45. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Tim Deegan <tim@xen.org>
Diffstat (limited to 'xen/arch/x86/x86_64')
-rw-r--r--xen/arch/x86/x86_64/compat/mm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
index 75e422d432..9adc4b472b 100644
--- a/xen/arch/x86/x86_64/compat/mm.c
+++ b/xen/arch/x86/x86_64/compat/mm.c
@@ -365,7 +365,7 @@ int compat_mmuext_op(XEN_GUEST_HANDLE_PARAM(mmuext_op_compat_t) cmp_uops,
: mcs->call.args[1];
unsigned int left = arg1 & ~MMU_UPDATE_PREEMPTED;
- BUG_ON(left == arg1);
+ BUG_ON(left == arg1 && left != i);
BUG_ON(left > count);
guest_handle_add_offset(nat_ops, i - left);
guest_handle_subtract_offset(cmp_uops, left);