]> xenbits.xensource.com Git - xen.git/commitdiff
altp2m: don't attempt to unshare pages during change_altp2m_gfn op
authorTamas K Lengyel <tamas.lengyel@zentific.com>
Fri, 14 Oct 2016 00:00:47 +0000 (18:00 -0600)
committerGeorge Dunlap <george.dunlap@citrix.com>
Thu, 20 Oct 2016 16:22:44 +0000 (17:22 +0100)
Attempting to change gfn mappings with altp2m on a memory shared page results
in a lock-order violation (mm locking order violation: 282 > 254), which
crashes the hypervisor. Don't attempt to automatically unshare such pages and
just fall back to failing the op if the page type is not correct.

Signed-off-by: Tamas K Lengyel <tamas.lengyel@zentific.com>
Reviewed-by: George Dunlap <george.dunlap@citrix.com>
Release-acked-by: Wei Liu <wei.liu2@citrix.com>
xen/arch/x86/mm/p2m.c

index 9526fffd6aae57dadcfcf9c8a246956dd3e5710c..6a4518590787fef0bb0632b9bae8ce7dabf4b0e0 100644 (file)
@@ -2628,7 +2628,7 @@ int p2m_change_altp2m_gfn(struct domain *d, unsigned int idx,
     if ( !mfn_valid(mfn) )
     {
         mfn = __get_gfn_type_access(hp2m, gfn_x(old_gfn), &t, &a,
-                                    P2M_ALLOC | P2M_UNSHARE, &page_order, 0);
+                                    P2M_ALLOC, &page_order, 0);
 
         if ( !mfn_valid(mfn) || t != p2m_ram_rw )
             goto out;