From 62cc20d4cb872e9db0ba6da3fb32817c410e7a8a Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Tue, 12 Dec 2017 15:13:30 +0100 Subject: [PATCH] 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 Reviewed-by: Andrew Cooper master commit: b4d0218cff66b7eaa9c9b8dc9bd71e7b089b016d master date: 2017-12-12 14:30:17 +0100 --- xen/arch/x86/mm/paging.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c index 8d7f5cbc31..149a59aa8d 100644 --- a/xen/arch/x86/mm/paging.c +++ b/xen/arch/x86/mm/paging.c @@ -285,7 +285,7 @@ void paging_mark_dirty(struct domain *d, unsigned long guest_mfn) /* 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 -- 2.39.5