diff options
Diffstat (limited to 'xen/arch/x86/mm/shadow/multi.c')
-rw-r--r-- | xen/arch/x86/mm/shadow/multi.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c index ca7635b416..243b9f4d44 100644 --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -4698,8 +4698,12 @@ static void sh_pagetable_dying(struct vcpu *v, paddr_t gpa) } for ( i = 0; i < 4; i++ ) { - if ( fast_path ) - smfn = _mfn(pagetable_get_pfn(v->arch.shadow_table[i])); + if ( fast_path ) { + if ( pagetable_is_null(v->arch.shadow_table[i]) ) + smfn = _mfn(INVALID_MFN); + else + smfn = _mfn(pagetable_get_pfn(v->arch.shadow_table[i])); + } else { /* retrieving the l2s */ |