From: Tamas K Lengyel Date: Fri, 24 Jan 2020 09:25:12 +0000 (+0100) Subject: x86/mem_sharing: use INVALID_MFN and p2m_is_shared in relinquish_shared_pages X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~832 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=5a9185c395527f4eebd788773c74e269f085bde4;p=xen.git x86/mem_sharing: use INVALID_MFN and p2m_is_shared in relinquish_shared_pages While using _mfn(0) is of no consequence during teardown, INVALID_MFN is the correct value that should be used. Signed-off-by: Tamas K Lengyel Reviewed-by: Jan Beulich --- diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c index 1846f97acc..cc3fc97618 100644 --- a/xen/arch/x86/mm/mem_sharing.c +++ b/xen/arch/x86/mm/mem_sharing.c @@ -1314,7 +1314,7 @@ int relinquish_shared_pages(struct domain *d) break; mfn = p2m->get_entry(p2m, _gfn(gfn), &t, &a, 0, NULL, NULL); - if ( mfn_valid(mfn) && t == p2m_ram_shared ) + if ( mfn_valid(mfn) && p2m_is_shared(t) ) { /* Does not fail with ENOMEM given the DESTROY flag */ BUG_ON(__mem_sharing_unshare_page( @@ -1324,7 +1324,7 @@ int relinquish_shared_pages(struct domain *d) * unshare. Must succeed: we just read the old entry and * we hold the p2m lock. */ - set_rc = p2m->set_entry(p2m, _gfn(gfn), _mfn(0), PAGE_ORDER_4K, + set_rc = p2m->set_entry(p2m, _gfn(gfn), INVALID_MFN, PAGE_ORDER_4K, p2m_invalid, p2m_access_rwx, -1); ASSERT(!set_rc); count += 0x10;