From: Tamas K Lengyel Date: Fri, 14 Oct 2016 00:00:47 +0000 (-0600) Subject: altp2m: don't attempt to unshare pages during change_altp2m_gfn op X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~165 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=31ba5a9b92ac00c135e46f54052336945b77f159;p=xen.git 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 --- 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;