$NetBSD: patch-CVE-2014-8594,v 1.1 2014/11/27 15:36:02 bouyer Exp $

x86: don't allow page table updates on non-PV page tables in do_mmu_update()

paging_write_guest_entry() and paging_cmpxchg_guest_entry() aren't
consistently supported for non-PV guests (they'd deref NULL for PVH or
non-HAP HVM ones). Don't allow respective MMU_* operations on the
page tables of such domains.

This is XSA-109.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Tim Deegan <tim@xen.org>

--- xen/arch/x86/mm.c.orig	2014-11-27 15:21:15.000000000 +0100
+++ xen/arch/x86/mm.c	2014-11-27 15:26:06.000000000 +0100
@@ -3695,6 +3695,10 @@
         {
             p2m_type_t p2mt;
 
+	    rc = -EOPNOTSUPP;
+	    if ( unlikely(paging_mode_refcounts(pt_owner)) )
+	        break;
+
             rc = xsm_mmu_normal_update(d, pg_owner, req.val);
             if ( rc )
                 break;
