diff --git a/xen/arch/x86/debug.c b/xen/arch/x86/debug.c index a67a1926a5..435bd40d6c 100644 --- a/xen/arch/x86/debug.c +++ b/xen/arch/x86/debug.c @@ -63,10 +63,17 @@ dbg_hvm_va2mfn(dbgva_t vaddr, struct domain *dp, int toaddr, if ( p2m_is_readonly(gfntype) && toaddr ) { DBGP2("kdb:p2m_is_readonly: gfntype:%x\n", gfntype); - return INVALID_MFN; + mfn = INVALID_MFN; + } + else + DBGP2("X: vaddr:%lx domid:%d mfn:%lx\n", vaddr, dp->domain_id, mfn); + + if ( mfn == INVALID_MFN ) + { + put_gfn(dp, *gfn); + *gfn = INVALID_GFN; } - DBGP2("X: vaddr:%lx domid:%d mfn:%lx\n", vaddr, dp->domain_id, mfn); return mfn; }