]> xenbits.xensource.com Git - xen.git/commit
x86: make page table handling error paths preemptible
authorJan Beulich <jbeulich@suse.com>
Thu, 2 May 2013 15:26:43 +0000 (17:26 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 2 May 2013 15:26:43 +0000 (17:26 +0200)
commit8eb2e89bfad8d55d0ca770e2a0988c945b318e03
treebe4b26dff5e601ce1d50351e4504224c4575bf30
parent09f9f72fa3dc2e239359741596fa349d8461cb50
x86: make page table handling error paths preemptible

... as they may take significant amounts of time.

This requires cloning the tweaked continuation logic from
do_mmuext_op() to do_mmu_update().

Note that in mod_l[34]_entry() a negative "preemptible" value gets
passed to put_page_from_l[34]e() now, telling the callee to store the
respective page in current->arch.old_guest_table (for a hypercall
continuation to pick up), rather than carrying out the put right away.
This is going to be made a little more explicit by a subsequent cleanup
patch.

This is part of CVE-2013-1918 / XSA-45.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Tim Deegan <tim@xen.org>
master commit: b8efae696c9a2d46e91fa0eda739427efc16c250
master date: 2013-05-02 16:39:37 +0200
xen/arch/x86/mm.c