From: Jan Beulich Date: Tue, 28 Nov 2017 12:14:43 +0000 (+0100) Subject: x86: check paging mode earlier in xenmem_add_to_physmap_one() X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~1002 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f38f3dccf1e1a8aabcf57364326fc8f44cddc41a;p=xen.git x86: check paging mode earlier in xenmem_add_to_physmap_one() There's no point in deferring this until after some initial processing, and it's actively wrong for the XENMAPSPACE_gmfn_foreign handling to not have such a check at all. Signed-off-by: Jan Beulich Reviewed-by: George Dunlap Acked-by: Andrew Cooper Release-acked-by: Julien Grall --- diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 86c822d577..6ec6e68afe 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -4081,6 +4081,9 @@ int xenmem_add_to_physmap_one( mfn_t mfn = INVALID_MFN; p2m_type_t p2mt; + if ( !paging_mode_translate(d) ) + return -EACCES; + switch ( space ) { case XENMAPSPACE_shared_info: @@ -4117,7 +4120,7 @@ int xenmem_add_to_physmap_one( break; } - if ( !paging_mode_translate(d) || mfn_eq(mfn, INVALID_MFN) ) + if ( mfn_eq(mfn, INVALID_MFN) ) { rc = -EINVAL; goto put_both;