x86: make page table handling error paths preemptible

Enterprise / Virtualization / Xen - Jan Beulich [suse.com] - 2 May 2013 09:39 UTC

... 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.

b8efae6 x86: make page table handling error paths preemptible
xen/arch/x86/mm.c | 125 +++++++++++++++++++++++++++++++++++++++++------------
1 file changed, 98 insertions(+), 27 deletions(-)

Upstream: xenbits.xen.org


  • Share