[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 |