diff options
author | Jan Beulich <jbeulich@suse.com> | 2013-05-02 16:34:21 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2013-05-02 16:34:21 +0200 |
commit | 6cdc9be2a5f2a87b4504404fbf648d16d9503c19 (patch) | |
tree | 57244e0df782cc38467cf1045314806967c72ba9 /xen/arch/x86/x86_64 | |
parent | 9626d1c1fafe2da5af6e59478c9e9db6d03144df (diff) | |
download | xen-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.c | 2 |
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); |