x86/mm: fix wrong unmap call
authorHongyan Xia <hongyxia@amazon.com>
Thu, 22 Apr 2021 17:42:30 +0000 (18:42 +0100)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Thu, 22 Apr 2021 17:49:23 +0000 (18:49 +0100)
Commit 'x86/mm: switch to new APIs in modify_xen_mappings' applied the
hunk of the unmap call to map_pages_to_xen() which was wrong and clearly
should have been at the end of modify_xen_mappings(). Fix.

Fixes: dd68f2e49bea ("x86/mm: switch to new APIs in modify_xen_mappings")
Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
Tested-by: Julien Grall <jgrall@amazon.com>
Tested-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/arch/x86/mm.c

index 50229e38d3845656c7c9a1f39b4e82211c2a8b24..84e3ccf47e2a7f593e41d6718f5fd03b4e942265 100644 (file)
@@ -5532,7 +5532,6 @@ int map_pages_to_xen(
 
  out:
     L3T_UNLOCK(current_l3page);
-    unmap_domain_page(pl2e);
     unmap_domain_page(pl3e);
     unmap_domain_page(pl2e);
     return rc;
@@ -5830,6 +5829,7 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
  out:
     L3T_UNLOCK(current_l3page);
     unmap_domain_page(pl3e);
+    unmap_domain_page(pl2e);
     return rc;
 }