File 5a2fd9e9-x86-paging-dont-wrongly-BUG-finding-SHARED_M2P_ENTRY.patch of Package xen.7673
# Commit b4d0218cff66b7eaa9c9b8dc9bd71e7b089b016d
# Date 2017-12-12 14:30:17 +0100
# Author Jan Beulich <jbeulich@suse.com>
# Committer Jan Beulich <jbeulich@suse.com>
x86/paging: don't unconditionally BUG() on finding SHARED_M2P_ENTRY
PV guests can fully control the values written into the P2M.
This is XSA-251.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -276,7 +276,7 @@ void paging_mark_dirty(struct domain *d,
/* We /really/ mean PFN here, even for non-translated guests. */
pfn = get_gpfn_from_mfn(mfn_x(gmfn));
/* Shared MFNs should NEVER be marked dirty */
- BUG_ON(SHARED_M2P(pfn));
+ BUG_ON(paging_mode_translate(d) && SHARED_M2P(pfn));
/*
* Values with the MSB set denote MFNs that aren't really part of the