Clearly within the for_each_vcpu() the vCPU of this loop is meant, not the (loop invariant) one the fault occurred on.
Signed-off-by: Jan Beulich <jbeul...@suse.com> --- Quitle likely this mistake would have been avoided if the function scope variable was named "curr", leaving "v" available for purposes likethe one here. Doing the rename now would, however, be quite a bit of code churn. --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -2672,10 +2672,10 @@ static int cf_check sh_page_fault( #if GUEST_PAGING_LEVELS == 3 unsigned int i; - for_each_shadow_table(v, i) + for_each_shadow_table(tmp, i) { mfn_t smfn = pagetable_get_mfn( - v->arch.paging.shadow.shadow_table[i]); + tmp->arch.paging.shadow.shadow_table[i]); if ( mfn_x(smfn) ) {