|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] x86/mm: drop gfn ref before calling handle_mmio()
# HG changeset patch
# User Tim Deegan <tim@xxxxxxx>
# Date 1331312064 0
# Node ID 5d20d2f6ffed0a49f030f04a8870f1926babbcbf
# Parent 10c5ba0b5af2dd209d4f7d27649dea5827652d9c
x86/mm: drop gfn ref before calling handle_mmio()
Otherwise we get a deadlock between the p2m lock and the event lock,
which handle_mmio() acquires.
Signed-off-by: Tim Deegan <tim@xxxxxxx>
Acked-by: Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx>
---
diff -r 10c5ba0b5af2 -r 5d20d2f6ffed xen/arch/x86/hvm/hvm.c
--- a/xen/arch/x86/hvm/hvm.c Fri Mar 09 09:58:41 2012 +0000
+++ b/xen/arch/x86/hvm/hvm.c Fri Mar 09 16:54:24 2012 +0000
@@ -1324,10 +1324,11 @@
if ( (p2mt == p2m_mmio_dm) ||
(access_w && (p2mt == p2m_ram_ro)) )
{
+ put_gfn(p2m->domain, gfn);
if ( !handle_mmio() )
hvm_inject_exception(TRAP_gp_fault, 0, 0);
rc = 1;
- goto out_put_gfn;
+ goto out;
}
#ifdef __x86_64__
@@ -1379,6 +1380,7 @@
out_put_gfn:
put_gfn(p2m->domain, gfn);
+out:
if ( paged )
p2m_mem_paging_populate(v->domain, gfn);
if ( req_ptr )
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |