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 <tamas.lengyel@zentific.com>
Reviewed-by: George Dunlap <george.dunlap@citrix.com>
Release-acked-by: Wei Liu <wei.liu2@citrix.com>
This commit is contained in:
Tamas K Lengyel authored and George Dunlap committed 2016-10-20 17:22:44 +01:00
1 parent 4abcd521bf
commit 31ba5a9b92
1 file changed
+1 -1
+1 -1
View 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;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.