Perhaps these should have been dropped right in 2fb2dee1ac62 ("x86/mm: pagetable_dying() is HVM-only"). Convert both to assertions, noting that in particular the one in the 3-level variant of the function comes too late anyway - first thing there we access the HVM part of a union.
Signed-off-by: Jan Beulich <jbeul...@suse.com> --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -3780,6 +3780,8 @@ static void cf_check sh_pagetable_dying( unsigned long l3gfn; mfn_t l3mfn; + ASSERT(is_hvm_domain(d)); + gcr3 = v->arch.hvm.guest_cr[3]; /* fast path: the pagetable belongs to the current context */ if ( gcr3 == gpa ) @@ -3822,7 +3824,7 @@ static void cf_check sh_pagetable_dying( : shadow_hash_lookup(d, mfn_x(gmfn), SH_type_l2_pae_shadow); } - if ( mfn_valid(smfn) && is_hvm_domain(d) ) + if ( mfn_valid(smfn) ) { gmfn = _mfn(mfn_to_page(smfn)->v.sh.back); mfn_to_page(gmfn)->pagetable_dying = true; @@ -3854,6 +3856,8 @@ static void cf_check sh_pagetable_dying( mfn_t smfn, gmfn; p2m_type_t p2mt; + ASSERT(is_hvm_domain(d)); + gmfn = get_gfn_query(d, _gfn(gpa >> PAGE_SHIFT), &p2mt); paging_lock(d); @@ -3863,7 +3867,7 @@ static void cf_check sh_pagetable_dying( smfn = shadow_hash_lookup(d, mfn_x(gmfn), SH_type_l4_64_shadow); #endif - if ( mfn_valid(smfn) && is_hvm_domain(d) ) + if ( mfn_valid(smfn) ) { mfn_to_page(gmfn)->pagetable_dying = true; shadow_unhook_mappings(d, smfn, 1/* user pages only */);