From: Jan Beulich Date: Wed, 18 Sep 2019 13:19:08 +0000 (+0200) Subject: x86/HVM: relax shadow mode check in hvm_set_cr3() X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=24c704fb0cd621ffb9e8c5b97fcb83469bd019f7;p=people%2Flarsk%2Fxen.git x86/HVM: relax shadow mode check in hvm_set_cr3() There's no need to re-obtain a page reference if only bits not affecting the address change. Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monné Acked-by: Andrew Cooper --- diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 977934a56c..fdb1e17f59 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -2323,7 +2323,7 @@ int hvm_set_cr3(unsigned long value, bool may_defer) } if ( hvm_paging_enabled(v) && !paging_mode_hap(v->domain) && - (value != v->arch.hvm.guest_cr[3]) ) + ((value ^ v->arch.hvm.guest_cr[3]) >> PAGE_SHIFT) ) { /* Shadow-mode CR3 change. Check PDBR and update refcounts. */ HVM_DBG_LOG(DBG_LEVEL_VMMU, "CR3 value = %lx", value);