From 31ba5a9b92ac00c135e46f54052336945b77f159 Mon Sep 17 00:00:00 2001 From: Tamas K Lengyel Date: Thu, 13 Oct 2016 18:00:47 -0600 Subject: [PATCH] altp2m: don't attempt to unshare pages during change_altp2m_gfn op 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 Reviewed-by: George Dunlap Release-acked-by: Wei Liu --- xen/arch/x86/mm/p2m.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c index 9526fffd6a..6a45185907 100644 --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -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; -- 2.39.5